@cdk8s/awscdk-resolver 0.0.613 → 0.0.614
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/.jsii +3 -3
- package/lib/resolve.js +1 -1
- package/node_modules/@aws-sdk/client-cloudformation/dist-cjs/index.js +3710 -15
- package/node_modules/@aws-sdk/client-cloudformation/dist-types/runtimeConfig.browser.d.ts +1 -1
- package/node_modules/@aws-sdk/client-cloudformation/dist-types/runtimeConfig.d.ts +1 -1
- package/node_modules/@aws-sdk/client-cloudformation/dist-types/runtimeConfig.native.d.ts +1 -1
- package/node_modules/@aws-sdk/client-cloudformation/dist-types/ts3.4/runtimeConfig.browser.d.ts +7 -1
- package/node_modules/@aws-sdk/client-cloudformation/dist-types/ts3.4/runtimeConfig.d.ts +7 -1
- package/node_modules/@aws-sdk/client-cloudformation/dist-types/ts3.4/runtimeConfig.native.d.ts +7 -1
- package/node_modules/@aws-sdk/client-cloudformation/package.json +8 -8
- package/node_modules/@aws-sdk/core/account-id-endpoint.d.ts +1 -3
- package/node_modules/@aws-sdk/core/client.d.ts +1 -3
- package/node_modules/@aws-sdk/core/httpAuthSchemes.d.ts +1 -3
- package/node_modules/@aws-sdk/core/package.json +8 -14
- package/node_modules/@aws-sdk/core/protocols.d.ts +1 -3
- package/node_modules/@aws-sdk/core/util.d.ts +1 -3
- package/node_modules/@aws-sdk/credential-provider-env/package.json +5 -5
- package/node_modules/@aws-sdk/credential-provider-http/dist-cjs/index.js +172 -1
- package/node_modules/@aws-sdk/credential-provider-http/package.json +8 -10
- package/node_modules/@aws-sdk/credential-provider-ini/package.json +13 -13
- package/node_modules/@aws-sdk/credential-provider-login/package.json +6 -6
- package/node_modules/@aws-sdk/credential-provider-node/package.json +11 -11
- package/node_modules/@aws-sdk/credential-provider-process/package.json +5 -5
- package/node_modules/@aws-sdk/credential-provider-sso/package.json +7 -7
- package/node_modules/@aws-sdk/credential-provider-web-identity/dist-cjs/index.js +58 -3
- package/node_modules/@aws-sdk/credential-provider-web-identity/package.json +7 -8
- package/node_modules/@aws-sdk/nested-clients/cognito-identity.d.ts +1 -3
- package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/cognito-identity/index.js +1 -1
- package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/signin/index.js +1 -1
- package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso/index.js +1 -1
- package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/index.js +1 -1
- package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/index.js +1 -1
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/cognito-identity/runtimeConfig.browser.d.ts +1 -1
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/cognito-identity/runtimeConfig.d.ts +1 -1
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/cognito-identity/runtimeConfig.native.d.ts +1 -1
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/signin/runtimeConfig.browser.d.ts +1 -1
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/signin/runtimeConfig.d.ts +1 -1
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/signin/runtimeConfig.native.d.ts +1 -1
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso/runtimeConfig.browser.d.ts +1 -1
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso/runtimeConfig.d.ts +1 -1
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso/runtimeConfig.native.d.ts +1 -1
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/runtimeConfig.browser.d.ts +1 -1
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/runtimeConfig.d.ts +1 -1
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/runtimeConfig.native.d.ts +1 -1
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/runtimeConfig.browser.d.ts +1 -1
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/runtimeConfig.d.ts +1 -1
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/runtimeConfig.native.d.ts +1 -1
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/cognito-identity/runtimeConfig.browser.d.ts +7 -1
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/cognito-identity/runtimeConfig.d.ts +7 -1
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/cognito-identity/runtimeConfig.native.d.ts +7 -1
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/signin/runtimeConfig.browser.d.ts +7 -1
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/signin/runtimeConfig.d.ts +7 -1
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/signin/runtimeConfig.native.d.ts +7 -1
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso/runtimeConfig.browser.d.ts +7 -1
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso/runtimeConfig.d.ts +7 -1
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso/runtimeConfig.native.d.ts +7 -1
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso-oidc/runtimeConfig.browser.d.ts +7 -1
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso-oidc/runtimeConfig.d.ts +7 -1
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso-oidc/runtimeConfig.native.d.ts +7 -1
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/runtimeConfig.browser.d.ts +7 -1
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/runtimeConfig.d.ts +7 -1
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/runtimeConfig.native.d.ts +7 -1
- package/node_modules/@aws-sdk/nested-clients/package.json +8 -8
- package/node_modules/@aws-sdk/nested-clients/signin.d.ts +1 -3
- package/node_modules/@aws-sdk/nested-clients/sso-oidc.d.ts +1 -3
- package/node_modules/@aws-sdk/nested-clients/sso.d.ts +1 -3
- package/node_modules/@aws-sdk/nested-clients/sts.d.ts +1 -3
- package/node_modules/@aws-sdk/signature-v4-multi-region/package.json +4 -4
- package/node_modules/@aws-sdk/token-providers/package.json +6 -6
- package/node_modules/@aws-sdk/types/package.json +2 -2
- package/node_modules/@aws-sdk/xml-builder/dist-cjs/index.js +236 -3
- package/node_modules/@aws-sdk/xml-builder/package.json +3 -4
- package/node_modules/@smithy/core/dist-cjs/submodules/checksum/index.browser.js +358 -145
- package/node_modules/@smithy/core/dist-cjs/submodules/checksum/index.js +462 -142
- package/node_modules/@smithy/core/dist-cjs/submodules/checksum/index.native.js +358 -145
- package/node_modules/@smithy/core/dist-cjs/submodules/config/index.js +108 -63
- package/node_modules/@smithy/core/dist-cjs/submodules/event-streams/index.browser.js +11 -8
- package/node_modules/@smithy/core/dist-cjs/submodules/event-streams/index.js +11 -8
- package/node_modules/@smithy/core/dist-cjs/submodules/protocols/index.js +5 -2
- package/node_modules/@smithy/core/dist-cjs/submodules/serde/index.browser.js +30 -36
- package/node_modules/@smithy/core/dist-cjs/submodules/serde/index.js +54 -110
- package/node_modules/@smithy/core/dist-cjs/submodules/serde/index.native.js +30 -36
- package/node_modules/@smithy/core/dist-es/submodules/checksum/crc32/Crc32Js.js +30 -0
- package/node_modules/@smithy/core/dist-es/submodules/checksum/crc32/Crc32Node.js +24 -0
- package/node_modules/@smithy/core/dist-es/submodules/checksum/index.browser.js +7 -1
- package/node_modules/@smithy/core/dist-es/submodules/checksum/index.js +7 -1
- package/node_modules/@smithy/core/dist-es/submodules/checksum/index.native.js +7 -1
- package/node_modules/@smithy/core/dist-es/submodules/checksum/md5/Md5Js.js +92 -0
- package/node_modules/@smithy/core/dist-es/submodules/checksum/md5/Md5Node.js +29 -0
- package/node_modules/@smithy/core/dist-es/submodules/checksum/sha256/Sha256Js.js +179 -0
- package/node_modules/@smithy/core/dist-es/submodules/checksum/sha256/Sha256Node.js +59 -0
- package/node_modules/@smithy/core/dist-es/submodules/checksum/sha256/Sha256WebCrypto.js +71 -0
- package/node_modules/@smithy/core/dist-es/submodules/config/config-resolver/regionConfig/config.js +6 -1
- package/node_modules/@smithy/core/dist-es/submodules/config/config-resolver/regionConfig/getInstanceMetadataRegion.js +92 -0
- package/node_modules/@smithy/core/dist-es/submodules/config/defaults-mode/constants.js +3 -0
- package/node_modules/@smithy/core/dist-es/submodules/config/defaults-mode/resolveDefaultsModeConfig.js +3 -56
- package/node_modules/@smithy/core/dist-es/submodules/event-streams/eventstream-codec/EventStreamCodec.js +5 -3
- package/node_modules/@smithy/core/dist-es/submodules/event-streams/eventstream-codec/splitMessage.js +7 -6
- package/node_modules/@smithy/core/dist-es/submodules/protocols/HttpProtocol.js +4 -1
- package/node_modules/@smithy/core/dist-es/submodules/serde/concatBytes.js +15 -0
- package/node_modules/@smithy/core/dist-es/submodules/serde/index.browser.js +2 -0
- package/node_modules/@smithy/core/dist-es/submodules/serde/index.js +2 -0
- package/node_modules/@smithy/core/dist-es/submodules/serde/index.native.js +2 -0
- package/node_modules/@smithy/core/dist-es/submodules/serde/util-stream/checksum/ChecksumStream.js +4 -0
- package/node_modules/@smithy/core/dist-es/submodules/serde/util-stream/headStream.js +2 -1
- package/node_modules/@smithy/core/dist-es/submodules/serde/util-stream/stream-collector.browser.js +12 -38
- package/node_modules/@smithy/core/dist-es/submodules/serde/util-stream/stream-collector.js +18 -33
- package/node_modules/@smithy/core/dist-es/submodules/serde/util-utf8/toUint8Array.browser.js +3 -0
- package/node_modules/@smithy/core/dist-es/submodules/serde/util-utf8/toUint8Array.js +3 -0
- package/node_modules/@smithy/core/dist-types/submodules/checksum/crc32/Crc32Js.d.ts +18 -0
- package/node_modules/@smithy/core/dist-types/submodules/checksum/crc32/Crc32Node.d.ts +18 -0
- package/node_modules/@smithy/core/dist-types/submodules/checksum/index.browser.d.ts +7 -1
- package/node_modules/@smithy/core/dist-types/submodules/checksum/index.d.ts +7 -1
- package/node_modules/@smithy/core/dist-types/submodules/checksum/index.native.d.ts +7 -1
- package/node_modules/@smithy/core/dist-types/submodules/checksum/md5/Md5Js.d.ts +19 -0
- package/node_modules/@smithy/core/dist-types/submodules/checksum/md5/Md5Node.d.ts +17 -0
- package/node_modules/@smithy/core/dist-types/submodules/checksum/sha256/Sha256Js.d.ts +28 -0
- package/node_modules/@smithy/core/dist-types/submodules/checksum/sha256/Sha256Node.d.ts +13 -0
- package/node_modules/@smithy/core/dist-types/submodules/checksum/sha256/Sha256WebCrypto.d.ts +22 -0
- package/node_modules/@smithy/core/dist-types/submodules/config/config-resolver/regionConfig/getInstanceMetadataRegion.d.ts +7 -0
- package/node_modules/@smithy/core/dist-types/submodules/config/defaults-mode/constants.d.ts +12 -0
- package/node_modules/@smithy/core/dist-types/submodules/serde/concatBytes.d.ts +6 -0
- package/node_modules/@smithy/core/dist-types/submodules/serde/index.browser.d.ts +2 -0
- package/node_modules/@smithy/core/dist-types/submodules/serde/index.d.ts +2 -0
- package/node_modules/@smithy/core/dist-types/submodules/serde/index.native.d.ts +2 -0
- package/node_modules/@smithy/core/dist-types/submodules/serde/util-stream/checksum/ChecksumStream.d.ts +9 -0
- package/node_modules/@smithy/core/dist-types/submodules/serde/util-stream/stream-collector.browser.d.ts +8 -2
- package/node_modules/@smithy/core/dist-types/submodules/serde/util-stream/stream-collector.d.ts +4 -1
- package/node_modules/@smithy/core/package.json +4 -4
- package/node_modules/@smithy/credential-provider-imds/package.json +2 -2
- package/node_modules/@smithy/fetch-http-handler/dist-cjs/index.js +2 -55
- package/node_modules/@smithy/fetch-http-handler/dist-es/index.js +2 -2
- package/node_modules/@smithy/fetch-http-handler/dist-types/index.d.ts +2 -2
- package/node_modules/@smithy/fetch-http-handler/package.json +2 -2
- package/node_modules/@smithy/node-http-handler/dist-cjs/index.js +3 -51
- package/node_modules/@smithy/node-http-handler/dist-es/index.js +3 -3
- package/node_modules/@smithy/node-http-handler/dist-types/index.d.ts +3 -3
- package/node_modules/@smithy/node-http-handler/package.json +2 -2
- package/node_modules/@smithy/signature-v4/package.json +2 -3
- package/package.json +3 -3
- package/node_modules/@aws-crypto/crc32/CHANGELOG.md +0 -100
- package/node_modules/@aws-crypto/crc32/LICENSE +0 -201
- package/node_modules/@aws-crypto/crc32/README.md +0 -16
- package/node_modules/@aws-crypto/crc32/build/main/aws_crc32.d.ts +0 -7
- package/node_modules/@aws-crypto/crc32/build/main/aws_crc32.js +0 -31
- package/node_modules/@aws-crypto/crc32/build/main/aws_crc32.js.map +0 -1
- package/node_modules/@aws-crypto/crc32/build/main/index.d.ts +0 -7
- package/node_modules/@aws-crypto/crc32/build/main/index.js +0 -108
- package/node_modules/@aws-crypto/crc32/build/main/index.js.map +0 -1
- package/node_modules/@aws-crypto/crc32/build/module/aws_crc32.d.ts +0 -7
- package/node_modules/@aws-crypto/crc32/build/module/aws_crc32.js +0 -28
- package/node_modules/@aws-crypto/crc32/build/module/aws_crc32.js.map +0 -1
- package/node_modules/@aws-crypto/crc32/build/module/index.d.ts +0 -7
- package/node_modules/@aws-crypto/crc32/build/module/index.js +0 -103
- package/node_modules/@aws-crypto/crc32/build/module/index.js.map +0 -1
- package/node_modules/@aws-crypto/crc32/package.json +0 -32
- package/node_modules/@aws-crypto/crc32/src/aws_crc32.ts +0 -24
- package/node_modules/@aws-crypto/crc32/src/index.ts +0 -92
- package/node_modules/@aws-crypto/crc32/tsconfig.json +0 -9
- package/node_modules/@aws-crypto/crc32/tsconfig.module.json +0 -7
- package/node_modules/@aws-sdk/client-cloudformation/dist-cjs/auth/httpAuthSchemeProvider.js +0 -40
- package/node_modules/@aws-sdk/client-cloudformation/dist-cjs/endpoint/bdd.js +0 -49
- package/node_modules/@aws-sdk/client-cloudformation/dist-cjs/endpoint/endpointResolver.js +0 -14
- package/node_modules/@aws-sdk/client-cloudformation/dist-cjs/models/CloudFormationServiceException.js +0 -8
- package/node_modules/@aws-sdk/client-cloudformation/dist-cjs/models/errors.js +0 -407
- package/node_modules/@aws-sdk/client-cloudformation/dist-cjs/runtimeConfig.browser.js +0 -32
- package/node_modules/@aws-sdk/client-cloudformation/dist-cjs/runtimeConfig.js +0 -45
- package/node_modules/@aws-sdk/client-cloudformation/dist-cjs/runtimeConfig.native.js +0 -12
- package/node_modules/@aws-sdk/client-cloudformation/dist-cjs/runtimeConfig.shared.js +0 -39
- package/node_modules/@aws-sdk/client-cloudformation/dist-cjs/schemas/schemas_0.js +0 -3022
- package/node_modules/@aws-sdk/core/dist-cjs/submodules/client/index.browser.js +0 -869
- package/node_modules/@aws-sdk/core/dist-cjs/submodules/client/index.native.js +0 -862
- package/node_modules/@aws-sdk/credential-provider-http/dist-cjs/fromHttp/checkUrl.js +0 -42
- package/node_modules/@aws-sdk/credential-provider-http/dist-cjs/fromHttp/fromHttp.browser.js +0 -27
- package/node_modules/@aws-sdk/credential-provider-http/dist-cjs/fromHttp/fromHttp.js +0 -71
- package/node_modules/@aws-sdk/credential-provider-http/dist-cjs/fromHttp/requestHelpers.js +0 -49
- package/node_modules/@aws-sdk/credential-provider-http/dist-cjs/fromHttp/retry-wrapper.js +0 -13
- package/node_modules/@aws-sdk/credential-provider-http/dist-cjs/index.browser.js +0 -2
- package/node_modules/@aws-sdk/credential-provider-web-identity/dist-cjs/fromTokenFile.js +0 -29
- package/node_modules/@aws-sdk/credential-provider-web-identity/dist-cjs/fromWebToken.js +0 -25
- package/node_modules/@aws-sdk/xml-builder/dist-cjs/xml-parser.browser.js +0 -57
- package/node_modules/@aws-sdk/xml-builder/dist-cjs/xml-parser.js +0 -234
- package/node_modules/@smithy/core/dist-es/submodules/checksum/md5-js/constants.js +0 -3
- package/node_modules/@smithy/core/dist-es/submodules/checksum/md5-js/md5.js +0 -168
- package/node_modules/@smithy/core/dist-types/submodules/checksum/md5-js/constants.d.ts +0 -12
- package/node_modules/@smithy/core/dist-types/submodules/checksum/md5-js/md5.d.ts +0 -16
- package/node_modules/@smithy/fetch-http-handler/dist-es/stream-collector.js +0 -53
- package/node_modules/@smithy/fetch-http-handler/dist-types/stream-collector.d.ts +0 -2
- package/node_modules/@smithy/node-http-handler/dist-es/stream-collector/collector.js +0 -8
- package/node_modules/@smithy/node-http-handler/dist-es/stream-collector/index.js +0 -41
- package/node_modules/@smithy/node-http-handler/dist-types/stream-collector/collector.d.ts +0 -5
- package/node_modules/@smithy/node-http-handler/dist-types/stream-collector/index.d.ts +0 -7
|
@@ -470,12 +470,118 @@ const resolveEndpointsConfig = (input) => {
|
|
|
470
470
|
});
|
|
471
471
|
};
|
|
472
472
|
|
|
473
|
+
const AWS_EXECUTION_ENV = "AWS_EXECUTION_ENV";
|
|
474
|
+
const AWS_REGION_ENV = "AWS_REGION";
|
|
475
|
+
const AWS_DEFAULT_REGION_ENV = "AWS_DEFAULT_REGION";
|
|
476
|
+
const ENV_IMDS_DISABLED = "AWS_EC2_METADATA_DISABLED";
|
|
477
|
+
const DEFAULTS_MODE_OPTIONS = ["in-region", "cross-region", "mobile", "standard", "legacy"];
|
|
478
|
+
const IMDS_REGION_PATH = "/latest/meta-data/placement/region";
|
|
479
|
+
const IMDS_TOKEN_PATH = "/latest/api/token";
|
|
480
|
+
const X_AWS_EC2_METADATA_TOKEN = "x-aws-ec2-metadata-token";
|
|
481
|
+
const X_AWS_EC2_METADATA_TOKEN_TTL = "x-aws-ec2-metadata-token-ttl-seconds";
|
|
482
|
+
|
|
483
|
+
const TIMEOUT_MS = 1000;
|
|
484
|
+
const NEG_CACHE_TTL_MS = 60_000;
|
|
485
|
+
let negativeCacheUntil = 0;
|
|
486
|
+
const getInstanceMetadataRegion = async () => {
|
|
487
|
+
if (process.env[ENV_IMDS_DISABLED]) {
|
|
488
|
+
return undefined;
|
|
489
|
+
}
|
|
490
|
+
if (Date.now() < negativeCacheUntil) {
|
|
491
|
+
return undefined;
|
|
492
|
+
}
|
|
493
|
+
try {
|
|
494
|
+
const endpoint = resolveImdsEndpoint();
|
|
495
|
+
const token = (await imdsRequest({
|
|
496
|
+
...endpoint,
|
|
497
|
+
path: IMDS_TOKEN_PATH,
|
|
498
|
+
method: "PUT",
|
|
499
|
+
headers: {
|
|
500
|
+
[X_AWS_EC2_METADATA_TOKEN_TTL]: "21600",
|
|
501
|
+
},
|
|
502
|
+
})).toString();
|
|
503
|
+
const region = (await imdsRequest({
|
|
504
|
+
...endpoint,
|
|
505
|
+
path: IMDS_REGION_PATH,
|
|
506
|
+
method: "GET",
|
|
507
|
+
headers: {
|
|
508
|
+
[X_AWS_EC2_METADATA_TOKEN]: token,
|
|
509
|
+
},
|
|
510
|
+
}))
|
|
511
|
+
.toString()
|
|
512
|
+
.trim();
|
|
513
|
+
return region || cacheNegativeAndReturnUndefined();
|
|
514
|
+
}
|
|
515
|
+
catch {
|
|
516
|
+
return cacheNegativeAndReturnUndefined();
|
|
517
|
+
}
|
|
518
|
+
};
|
|
519
|
+
const cacheNegativeAndReturnUndefined = () => {
|
|
520
|
+
negativeCacheUntil = Date.now() + NEG_CACHE_TTL_MS;
|
|
521
|
+
return undefined;
|
|
522
|
+
};
|
|
523
|
+
const resolveImdsEndpoint = () => {
|
|
524
|
+
const envEndpoint = process.env.AWS_EC2_METADATA_SERVICE_ENDPOINT;
|
|
525
|
+
if (envEndpoint) {
|
|
526
|
+
const url = new URL(envEndpoint);
|
|
527
|
+
return {
|
|
528
|
+
hostname: url.hostname.replace(/^\[(.+)]$/, "$1"),
|
|
529
|
+
port: url.port ? Number(url.port) : undefined,
|
|
530
|
+
};
|
|
531
|
+
}
|
|
532
|
+
if (process.env.AWS_EC2_METADATA_SERVICE_ENDPOINT_MODE === "IPv6") {
|
|
533
|
+
return { hostname: "fd00:ec2::254" };
|
|
534
|
+
}
|
|
535
|
+
return { hostname: "169.254.169.254" };
|
|
536
|
+
};
|
|
537
|
+
const imdsRequest = async (options) => {
|
|
538
|
+
const { request } = require('node:http');
|
|
539
|
+
return new Promise((resolve, reject) => {
|
|
540
|
+
const req = request({
|
|
541
|
+
hostname: options.hostname,
|
|
542
|
+
port: options.port,
|
|
543
|
+
path: options.path,
|
|
544
|
+
method: options.method,
|
|
545
|
+
headers: options.headers,
|
|
546
|
+
timeout: TIMEOUT_MS,
|
|
547
|
+
signal: AbortSignal.timeout(TIMEOUT_MS),
|
|
548
|
+
});
|
|
549
|
+
req.on("error", (err) => {
|
|
550
|
+
reject(err);
|
|
551
|
+
req.destroy();
|
|
552
|
+
});
|
|
553
|
+
req.on("timeout", () => {
|
|
554
|
+
reject(new Error("TimeoutError from instance metadata service"));
|
|
555
|
+
req.destroy();
|
|
556
|
+
});
|
|
557
|
+
req.on("response", (res) => {
|
|
558
|
+
const { statusCode = 400 } = res;
|
|
559
|
+
if (statusCode < 200 || statusCode >= 300) {
|
|
560
|
+
reject(Object.assign(new Error("Error response received from instance metadata service"), { statusCode }));
|
|
561
|
+
req.destroy();
|
|
562
|
+
return;
|
|
563
|
+
}
|
|
564
|
+
const chunks = [];
|
|
565
|
+
res.on("data", (chunk) => chunks.push(chunk));
|
|
566
|
+
res.on("end", () => {
|
|
567
|
+
resolve(Buffer.concat(chunks));
|
|
568
|
+
req.destroy();
|
|
569
|
+
});
|
|
570
|
+
});
|
|
571
|
+
req.end();
|
|
572
|
+
});
|
|
573
|
+
};
|
|
574
|
+
|
|
473
575
|
const REGION_ENV_NAME = "AWS_REGION";
|
|
474
576
|
const REGION_INI_NAME = "region";
|
|
475
577
|
const NODE_REGION_CONFIG_OPTIONS = {
|
|
476
578
|
environmentVariableSelector: (env) => env[REGION_ENV_NAME],
|
|
477
579
|
configFileSelector: (profile) => profile[REGION_INI_NAME],
|
|
478
|
-
default: () => {
|
|
580
|
+
default: async () => {
|
|
581
|
+
const region = await getInstanceMetadataRegion();
|
|
582
|
+
if (region) {
|
|
583
|
+
return region;
|
|
584
|
+
}
|
|
479
585
|
throw new Error("Region is missing");
|
|
480
586
|
},
|
|
481
587
|
};
|
|
@@ -577,13 +683,6 @@ const getRegionInfo = (region, { useFipsEndpoint = false, useDualstackEndpoint =
|
|
|
577
683
|
};
|
|
578
684
|
};
|
|
579
685
|
|
|
580
|
-
const AWS_EXECUTION_ENV = "AWS_EXECUTION_ENV";
|
|
581
|
-
const AWS_REGION_ENV = "AWS_REGION";
|
|
582
|
-
const AWS_DEFAULT_REGION_ENV = "AWS_DEFAULT_REGION";
|
|
583
|
-
const ENV_IMDS_DISABLED = "AWS_EC2_METADATA_DISABLED";
|
|
584
|
-
const DEFAULTS_MODE_OPTIONS = ["in-region", "cross-region", "mobile", "standard", "legacy"];
|
|
585
|
-
const IMDS_REGION_PATH = "/latest/meta-data/placement/region";
|
|
586
|
-
|
|
587
686
|
const AWS_DEFAULTS_MODE_ENV = "AWS_DEFAULTS_MODE";
|
|
588
687
|
const AWS_DEFAULTS_MODE_CONFIG = "defaults_mode";
|
|
589
688
|
const NODE_DEFAULTS_MODE_CONFIG_OPTIONS = {
|
|
@@ -633,61 +732,7 @@ const inferPhysicalRegion = async () => {
|
|
|
633
732
|
if (process.env[AWS_EXECUTION_ENV] && (process.env[AWS_REGION_ENV] || process.env[AWS_DEFAULT_REGION_ENV])) {
|
|
634
733
|
return process.env[AWS_REGION_ENV] ?? process.env[AWS_DEFAULT_REGION_ENV];
|
|
635
734
|
}
|
|
636
|
-
|
|
637
|
-
try {
|
|
638
|
-
const endpoint = await getImdsEndpoint();
|
|
639
|
-
return (await imdsHttpGet({ hostname: endpoint.hostname, path: IMDS_REGION_PATH })).toString();
|
|
640
|
-
}
|
|
641
|
-
catch (e) {
|
|
642
|
-
}
|
|
643
|
-
}
|
|
644
|
-
};
|
|
645
|
-
const getImdsEndpoint = async () => {
|
|
646
|
-
const envEndpoint = process.env.AWS_EC2_METADATA_SERVICE_ENDPOINT;
|
|
647
|
-
if (envEndpoint) {
|
|
648
|
-
const url = new URL(envEndpoint);
|
|
649
|
-
return { hostname: url.hostname, path: url.pathname };
|
|
650
|
-
}
|
|
651
|
-
const envMode = process.env.AWS_EC2_METADATA_SERVICE_ENDPOINT_MODE;
|
|
652
|
-
if (envMode === "IPv6") {
|
|
653
|
-
return { hostname: "fd00:ec2::254", path: "/" };
|
|
654
|
-
}
|
|
655
|
-
return { hostname: "169.254.169.254", path: "/" };
|
|
656
|
-
};
|
|
657
|
-
const imdsHttpGet = async ({ hostname, path }) => {
|
|
658
|
-
const { request } = require('node:http');
|
|
659
|
-
return new Promise((resolve, reject) => {
|
|
660
|
-
const req = request({
|
|
661
|
-
method: "GET",
|
|
662
|
-
hostname: hostname.replace(/^\[(.+)]$/, "$1"),
|
|
663
|
-
path,
|
|
664
|
-
timeout: 1000,
|
|
665
|
-
signal: AbortSignal.timeout(1000),
|
|
666
|
-
});
|
|
667
|
-
req.on("error", (err) => {
|
|
668
|
-
reject(err);
|
|
669
|
-
req.destroy();
|
|
670
|
-
});
|
|
671
|
-
req.on("timeout", () => {
|
|
672
|
-
reject(new Error("TimeoutError from instance metadata service"));
|
|
673
|
-
req.destroy();
|
|
674
|
-
});
|
|
675
|
-
req.on("response", (res) => {
|
|
676
|
-
const { statusCode = 400 } = res;
|
|
677
|
-
if (statusCode < 200 || 300 <= statusCode) {
|
|
678
|
-
reject(Object.assign(new Error("Error response received from instance metadata service"), { statusCode }));
|
|
679
|
-
req.destroy();
|
|
680
|
-
return;
|
|
681
|
-
}
|
|
682
|
-
const chunks = [];
|
|
683
|
-
res.on("data", (chunk) => chunks.push(chunk));
|
|
684
|
-
res.on("end", () => {
|
|
685
|
-
resolve(Buffer.concat(chunks));
|
|
686
|
-
req.destroy();
|
|
687
|
-
});
|
|
688
|
-
});
|
|
689
|
-
req.end();
|
|
690
|
-
});
|
|
735
|
+
return getInstanceMetadataRegion();
|
|
691
736
|
};
|
|
692
737
|
|
|
693
738
|
exports.CONFIG_PREFIX_SEPARATOR = CONFIG_PREFIX_SEPARATOR;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const { Crc32 } = require("@
|
|
1
|
+
const { Crc32 } = require("@smithy/core/checksum");
|
|
2
2
|
const { toHex, fromHex, toUtf8, fromUtf8 } = require("@smithy/core/serde");
|
|
3
3
|
|
|
4
4
|
class Int64 {
|
|
@@ -244,13 +244,14 @@ function splitMessage({ byteLength, byteOffset, buffer }) {
|
|
|
244
244
|
const headerLength = view.getUint32(PRELUDE_MEMBER_LENGTH, false);
|
|
245
245
|
const expectedPreludeChecksum = view.getUint32(PRELUDE_LENGTH, false);
|
|
246
246
|
const expectedMessageChecksum = view.getUint32(byteLength - CHECKSUM_LENGTH, false);
|
|
247
|
-
const checksummer = new Crc32()
|
|
248
|
-
|
|
249
|
-
|
|
247
|
+
const checksummer = new Crc32();
|
|
248
|
+
checksummer.update(new Uint8Array(buffer, byteOffset, PRELUDE_LENGTH));
|
|
249
|
+
if (expectedPreludeChecksum !== checksummer.digestSync()) {
|
|
250
|
+
throw new Error(`The prelude checksum specified in the message (${expectedPreludeChecksum}) does not match the calculated CRC32 checksum (${checksummer.digestSync()})`);
|
|
250
251
|
}
|
|
251
252
|
checksummer.update(new Uint8Array(buffer, byteOffset + PRELUDE_LENGTH, byteLength - (PRELUDE_LENGTH + CHECKSUM_LENGTH)));
|
|
252
|
-
if (expectedMessageChecksum !== checksummer.
|
|
253
|
-
throw new Error(`The message checksum (${checksummer.
|
|
253
|
+
if (expectedMessageChecksum !== checksummer.digestSync()) {
|
|
254
|
+
throw new Error(`The message checksum (${checksummer.digestSync()}) did not match the expected value of ${expectedMessageChecksum}`);
|
|
254
255
|
}
|
|
255
256
|
return {
|
|
256
257
|
headers: new DataView(buffer, byteOffset + PRELUDE_LENGTH + CHECKSUM_LENGTH, headerLength),
|
|
@@ -306,10 +307,12 @@ class EventStreamCodec {
|
|
|
306
307
|
const checksum = new Crc32();
|
|
307
308
|
view.setUint32(0, length, false);
|
|
308
309
|
view.setUint32(4, headers.byteLength, false);
|
|
309
|
-
|
|
310
|
+
checksum.update(out.subarray(0, 8));
|
|
311
|
+
view.setUint32(8, checksum.digestSync(), false);
|
|
310
312
|
out.set(headers, 12);
|
|
311
313
|
out.set(body, headers.byteLength + 12);
|
|
312
|
-
|
|
314
|
+
checksum.update(out.subarray(8, length - 4));
|
|
315
|
+
view.setUint32(length - 4, checksum.digestSync(), false);
|
|
313
316
|
return out;
|
|
314
317
|
}
|
|
315
318
|
decode(message) {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const { Crc32 } = require("@
|
|
1
|
+
const { Crc32 } = require("@smithy/core/checksum");
|
|
2
2
|
const { toHex, fromHex, toUtf8, fromUtf8 } = require("@smithy/core/serde");
|
|
3
3
|
const { Readable } = require("node:stream");
|
|
4
4
|
|
|
@@ -245,13 +245,14 @@ function splitMessage({ byteLength, byteOffset, buffer }) {
|
|
|
245
245
|
const headerLength = view.getUint32(PRELUDE_MEMBER_LENGTH, false);
|
|
246
246
|
const expectedPreludeChecksum = view.getUint32(PRELUDE_LENGTH, false);
|
|
247
247
|
const expectedMessageChecksum = view.getUint32(byteLength - CHECKSUM_LENGTH, false);
|
|
248
|
-
const checksummer = new Crc32()
|
|
249
|
-
|
|
250
|
-
|
|
248
|
+
const checksummer = new Crc32();
|
|
249
|
+
checksummer.update(new Uint8Array(buffer, byteOffset, PRELUDE_LENGTH));
|
|
250
|
+
if (expectedPreludeChecksum !== checksummer.digestSync()) {
|
|
251
|
+
throw new Error(`The prelude checksum specified in the message (${expectedPreludeChecksum}) does not match the calculated CRC32 checksum (${checksummer.digestSync()})`);
|
|
251
252
|
}
|
|
252
253
|
checksummer.update(new Uint8Array(buffer, byteOffset + PRELUDE_LENGTH, byteLength - (PRELUDE_LENGTH + CHECKSUM_LENGTH)));
|
|
253
|
-
if (expectedMessageChecksum !== checksummer.
|
|
254
|
-
throw new Error(`The message checksum (${checksummer.
|
|
254
|
+
if (expectedMessageChecksum !== checksummer.digestSync()) {
|
|
255
|
+
throw new Error(`The message checksum (${checksummer.digestSync()}) did not match the expected value of ${expectedMessageChecksum}`);
|
|
255
256
|
}
|
|
256
257
|
return {
|
|
257
258
|
headers: new DataView(buffer, byteOffset + PRELUDE_LENGTH + CHECKSUM_LENGTH, headerLength),
|
|
@@ -307,10 +308,12 @@ class EventStreamCodec {
|
|
|
307
308
|
const checksum = new Crc32();
|
|
308
309
|
view.setUint32(0, length, false);
|
|
309
310
|
view.setUint32(4, headers.byteLength, false);
|
|
310
|
-
|
|
311
|
+
checksum.update(out.subarray(0, 8));
|
|
312
|
+
view.setUint32(8, checksum.digestSync(), false);
|
|
311
313
|
out.set(headers, 12);
|
|
312
314
|
out.set(body, headers.byteLength + 12);
|
|
313
|
-
|
|
315
|
+
checksum.update(out.subarray(8, length - 4));
|
|
316
|
+
view.setUint32(length - 4, checksum.digestSync(), false);
|
|
314
317
|
return out;
|
|
315
318
|
}
|
|
316
319
|
decode(message) {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
const { Uint8ArrayBlobAdapter, sdkStreamMixin, splitEvery, splitHeader, fromBase64, _parseEpochTimestamp, _parseRfc7231DateTime, _parseRfc3339DateTimeWithOffset, LazyJsonString, NumericValue, toUtf8, fromUtf8, generateIdempotencyToken, toBase64, dateToUtcString, quoteHeader } = require("@smithy/core/serde");
|
|
2
2
|
const { TypeRegistry, NormalizedSchema, translateTraits } = require("@smithy/core/schema");
|
|
3
|
-
const { HttpRequest, HttpResponse } = require("@smithy/core/transport");
|
|
4
|
-
const {
|
|
3
|
+
const { HttpRequest, HttpResponse, isValidHostname } = require("@smithy/core/transport");
|
|
4
|
+
const { parseQueryString, parseUrl } = require("@smithy/core/transport");
|
|
5
5
|
exports.HttpRequest = HttpRequest;
|
|
6
6
|
exports.HttpResponse = HttpResponse;
|
|
7
7
|
exports.isValidHostname = isValidHostname;
|
|
@@ -116,6 +116,9 @@ class HttpProtocol extends SerdeContext {
|
|
|
116
116
|
hostPrefix = hostPrefix.replace(`{${name}}`, replacement);
|
|
117
117
|
}
|
|
118
118
|
request.hostname = hostPrefix + request.hostname;
|
|
119
|
+
if (!isValidHostname(request.hostname)) {
|
|
120
|
+
throw new Error(`[${request.hostname}] is not a valid hostname.`);
|
|
121
|
+
}
|
|
119
122
|
}
|
|
120
123
|
}
|
|
121
124
|
}
|
|
@@ -863,6 +863,9 @@ const calculateBodyLength = (body) => {
|
|
|
863
863
|
};
|
|
864
864
|
|
|
865
865
|
const toUint8Array = (data) => {
|
|
866
|
+
if (data instanceof Uint8Array) {
|
|
867
|
+
return data;
|
|
868
|
+
}
|
|
866
869
|
if (typeof data === "string") {
|
|
867
870
|
return fromUtf8(data);
|
|
868
871
|
}
|
|
@@ -872,6 +875,22 @@ const toUint8Array = (data) => {
|
|
|
872
875
|
return new Uint8Array(data);
|
|
873
876
|
};
|
|
874
877
|
|
|
878
|
+
function concatBytes(arrays, length) {
|
|
879
|
+
if (length === undefined) {
|
|
880
|
+
length = 0;
|
|
881
|
+
for (const bytes of arrays) {
|
|
882
|
+
length += bytes.byteLength;
|
|
883
|
+
}
|
|
884
|
+
}
|
|
885
|
+
const result = new Uint8Array(length);
|
|
886
|
+
let offset = 0;
|
|
887
|
+
for (const buf of arrays) {
|
|
888
|
+
result.set(buf, offset);
|
|
889
|
+
offset += buf.byteLength;
|
|
890
|
+
}
|
|
891
|
+
return result;
|
|
892
|
+
}
|
|
893
|
+
|
|
875
894
|
const isArrayBuffer = (arg) => (typeof ArrayBuffer === "function" && arg instanceof ArrayBuffer) ||
|
|
876
895
|
Object.prototype.toString.call(arg) === "[object ArrayBuffer]";
|
|
877
896
|
|
|
@@ -1201,56 +1220,29 @@ async function headStream(stream, bytes) {
|
|
|
1201
1220
|
}
|
|
1202
1221
|
|
|
1203
1222
|
const streamCollector = async (stream) => {
|
|
1204
|
-
if ((
|
|
1205
|
-
if (Blob.prototype.arrayBuffer !== undefined) {
|
|
1206
|
-
return new Uint8Array(await stream.arrayBuffer());
|
|
1207
|
-
}
|
|
1223
|
+
if (isBlob(stream)) {
|
|
1208
1224
|
return collectBlob(stream);
|
|
1209
1225
|
}
|
|
1210
|
-
return
|
|
1226
|
+
return collectReadableStream(stream);
|
|
1211
1227
|
};
|
|
1212
1228
|
async function collectBlob(blob) {
|
|
1213
|
-
|
|
1214
|
-
const arrayBuffer = fromBase64(base64);
|
|
1215
|
-
return new Uint8Array(arrayBuffer);
|
|
1229
|
+
return blob.arrayBuffer().then((ab) => new Uint8Array(ab));
|
|
1216
1230
|
}
|
|
1217
|
-
async function
|
|
1231
|
+
async function collectReadableStream(stream) {
|
|
1218
1232
|
const chunks = [];
|
|
1219
1233
|
const reader = stream.getReader();
|
|
1220
|
-
let isDone = false;
|
|
1221
1234
|
let length = 0;
|
|
1222
|
-
while (
|
|
1235
|
+
while (true) {
|
|
1223
1236
|
const { done, value } = await reader.read();
|
|
1224
1237
|
if (value) {
|
|
1225
1238
|
chunks.push(value);
|
|
1226
1239
|
length += value.length;
|
|
1227
1240
|
}
|
|
1228
|
-
|
|
1229
|
-
|
|
1230
|
-
|
|
1231
|
-
let offset = 0;
|
|
1232
|
-
for (const chunk of chunks) {
|
|
1233
|
-
collected.set(chunk, offset);
|
|
1234
|
-
offset += chunk.length;
|
|
1241
|
+
if (done) {
|
|
1242
|
+
break;
|
|
1243
|
+
}
|
|
1235
1244
|
}
|
|
1236
|
-
return
|
|
1237
|
-
}
|
|
1238
|
-
function readToBase64(blob) {
|
|
1239
|
-
return new Promise((resolve, reject) => {
|
|
1240
|
-
const reader = new FileReader();
|
|
1241
|
-
reader.onloadend = () => {
|
|
1242
|
-
if (reader.readyState !== 2) {
|
|
1243
|
-
return reject(new Error("Reader aborted too early"));
|
|
1244
|
-
}
|
|
1245
|
-
const result = (reader.result ?? "");
|
|
1246
|
-
const commaIndex = result.indexOf(",");
|
|
1247
|
-
const dataOffset = commaIndex > -1 ? commaIndex + 1 : result.length;
|
|
1248
|
-
resolve(result.substring(dataOffset));
|
|
1249
|
-
};
|
|
1250
|
-
reader.onabort = () => reject(new Error("Read aborted"));
|
|
1251
|
-
reader.onerror = () => reject(reader.error);
|
|
1252
|
-
reader.readAsDataURL(blob);
|
|
1253
|
-
});
|
|
1245
|
+
return concatBytes(chunks, length);
|
|
1254
1246
|
}
|
|
1255
1247
|
|
|
1256
1248
|
const ERR_MSG_STREAM_HAS_BEEN_TRANSFORMED = "The stream has already been transformed.";
|
|
@@ -1340,6 +1332,7 @@ exports._parseEpochTimestamp = _parseEpochTimestamp;
|
|
|
1340
1332
|
exports._parseRfc3339DateTimeWithOffset = _parseRfc3339DateTimeWithOffset;
|
|
1341
1333
|
exports._parseRfc7231DateTime = _parseRfc7231DateTime;
|
|
1342
1334
|
exports.calculateBodyLength = calculateBodyLength;
|
|
1335
|
+
exports.concatBytes = concatBytes;
|
|
1343
1336
|
exports.copyDocumentWithTransform = copyDocumentWithTransform;
|
|
1344
1337
|
exports.createBufferedReadable = createBufferedReadable;
|
|
1345
1338
|
exports.createChecksumStream = createChecksumStream;
|
|
@@ -1388,6 +1381,7 @@ exports.serializerMiddlewareOption = serializerMiddlewareOption;
|
|
|
1388
1381
|
exports.splitEvery = splitEvery;
|
|
1389
1382
|
exports.splitHeader = splitHeader;
|
|
1390
1383
|
exports.splitStream = splitStream;
|
|
1384
|
+
exports.streamCollector = streamCollector;
|
|
1391
1385
|
exports.strictParseByte = strictParseByte;
|
|
1392
1386
|
exports.strictParseDouble = strictParseDouble;
|
|
1393
1387
|
exports.strictParseFloat = strictParseFloat;
|
|
@@ -21,7 +21,7 @@ const fromString = (input, encoding) => {
|
|
|
21
21
|
};
|
|
22
22
|
|
|
23
23
|
const BASE64_REGEX = /^[A-Za-z0-9+/]*={0,2}$/;
|
|
24
|
-
const fromBase64
|
|
24
|
+
const fromBase64 = (input) => {
|
|
25
25
|
if ((input.length * 3) % 4 !== 0) {
|
|
26
26
|
throw new TypeError(`Incorrect padding on base64 string.`);
|
|
27
27
|
}
|
|
@@ -831,6 +831,9 @@ const calculateBodyLength = (body) => {
|
|
|
831
831
|
};
|
|
832
832
|
|
|
833
833
|
const toUint8Array = (data) => {
|
|
834
|
+
if (data instanceof Uint8Array) {
|
|
835
|
+
return data;
|
|
836
|
+
}
|
|
834
837
|
if (typeof data === "string") {
|
|
835
838
|
return fromUtf8$1(data);
|
|
836
839
|
}
|
|
@@ -840,6 +843,22 @@ const toUint8Array = (data) => {
|
|
|
840
843
|
return new Uint8Array(data);
|
|
841
844
|
};
|
|
842
845
|
|
|
846
|
+
function concatBytes(arrays, length) {
|
|
847
|
+
if (length === undefined) {
|
|
848
|
+
length = 0;
|
|
849
|
+
for (const bytes of arrays) {
|
|
850
|
+
length += bytes.byteLength;
|
|
851
|
+
}
|
|
852
|
+
}
|
|
853
|
+
const result = new Uint8Array(length);
|
|
854
|
+
let offset = 0;
|
|
855
|
+
for (const buf of arrays) {
|
|
856
|
+
result.set(buf, offset);
|
|
857
|
+
offset += buf.byteLength;
|
|
858
|
+
}
|
|
859
|
+
return result;
|
|
860
|
+
}
|
|
861
|
+
|
|
843
862
|
const deserializerMiddleware = (options, deserializer) => (next, context) => async (args) => {
|
|
844
863
|
const { response } = await next(args);
|
|
845
864
|
try {
|
|
@@ -1025,6 +1044,10 @@ let ChecksumStream$1 = class ChecksumStream extends Duplex {
|
|
|
1025
1044
|
this.push(null);
|
|
1026
1045
|
return callback();
|
|
1027
1046
|
}
|
|
1047
|
+
_destroy(error, callback) {
|
|
1048
|
+
this.source?.destroy();
|
|
1049
|
+
callback(error);
|
|
1050
|
+
}
|
|
1028
1051
|
};
|
|
1029
1052
|
|
|
1030
1053
|
const isReadableStream = (stream) => typeof ReadableStream === "function" &&
|
|
@@ -1036,7 +1059,7 @@ const isBlob = (blob) => {
|
|
|
1036
1059
|
const fromUtf8 = (input) => new TextEncoder().encode(input);
|
|
1037
1060
|
|
|
1038
1061
|
const chars = `ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/`;
|
|
1039
|
-
|
|
1062
|
+
Object.entries(chars).reduce((acc, [i, c]) => {
|
|
1040
1063
|
acc[c] = Number(i);
|
|
1041
1064
|
return acc;
|
|
1042
1065
|
}, {});
|
|
@@ -1414,7 +1437,7 @@ const headStream = (stream, bytes) => {
|
|
|
1414
1437
|
});
|
|
1415
1438
|
collector.on("error", reject);
|
|
1416
1439
|
collector.on("finish", function () {
|
|
1417
|
-
const bytes =
|
|
1440
|
+
const bytes = concatBytes(this.buffers);
|
|
1418
1441
|
resolve(bytes);
|
|
1419
1442
|
});
|
|
1420
1443
|
});
|
|
@@ -1446,93 +1469,30 @@ const toUtf8 = (input) => {
|
|
|
1446
1469
|
return new TextDecoder("utf-8").decode(input);
|
|
1447
1470
|
};
|
|
1448
1471
|
|
|
1449
|
-
const fromBase64 = (input) => {
|
|
1450
|
-
let totalByteLength = (input.length / 4) * 3;
|
|
1451
|
-
if (input.slice(-2) === "==") {
|
|
1452
|
-
totalByteLength -= 2;
|
|
1453
|
-
}
|
|
1454
|
-
else if (input.slice(-1) === "=") {
|
|
1455
|
-
totalByteLength--;
|
|
1456
|
-
}
|
|
1457
|
-
const out = new ArrayBuffer(totalByteLength);
|
|
1458
|
-
const dataView = new DataView(out);
|
|
1459
|
-
for (let i = 0; i < input.length; i += 4) {
|
|
1460
|
-
let bits = 0;
|
|
1461
|
-
let bitLength = 0;
|
|
1462
|
-
for (let j = i, limit = i + 3; j <= limit; j++) {
|
|
1463
|
-
if (input[j] !== "=") {
|
|
1464
|
-
if (!(input[j] in alphabetByEncoding)) {
|
|
1465
|
-
throw new TypeError(`Invalid character ${input[j]} in base64 string.`);
|
|
1466
|
-
}
|
|
1467
|
-
bits |= alphabetByEncoding[input[j]] << ((limit - j) * bitsPerLetter);
|
|
1468
|
-
bitLength += bitsPerLetter;
|
|
1469
|
-
}
|
|
1470
|
-
else {
|
|
1471
|
-
bits >>= bitsPerLetter;
|
|
1472
|
-
}
|
|
1473
|
-
}
|
|
1474
|
-
const chunkOffset = (i / 4) * 3;
|
|
1475
|
-
bits >>= bitLength % bitsPerByte;
|
|
1476
|
-
const byteLength = Math.floor(bitLength / bitsPerByte);
|
|
1477
|
-
for (let k = 0; k < byteLength; k++) {
|
|
1478
|
-
const offset = (byteLength - k - 1) * bitsPerByte;
|
|
1479
|
-
dataView.setUint8(chunkOffset + k, (bits & (255 << offset)) >> offset);
|
|
1480
|
-
}
|
|
1481
|
-
}
|
|
1482
|
-
return new Uint8Array(out);
|
|
1483
|
-
};
|
|
1484
|
-
|
|
1485
1472
|
const streamCollector$1 = async (stream) => {
|
|
1486
|
-
if ((
|
|
1487
|
-
if (Blob.prototype.arrayBuffer !== undefined) {
|
|
1488
|
-
return new Uint8Array(await stream.arrayBuffer());
|
|
1489
|
-
}
|
|
1473
|
+
if (isBlob(stream)) {
|
|
1490
1474
|
return collectBlob(stream);
|
|
1491
1475
|
}
|
|
1492
|
-
return
|
|
1476
|
+
return collectReadableStream(stream);
|
|
1493
1477
|
};
|
|
1494
1478
|
async function collectBlob(blob) {
|
|
1495
|
-
|
|
1496
|
-
const arrayBuffer = fromBase64(base64);
|
|
1497
|
-
return new Uint8Array(arrayBuffer);
|
|
1479
|
+
return blob.arrayBuffer().then((ab) => new Uint8Array(ab));
|
|
1498
1480
|
}
|
|
1499
|
-
async function
|
|
1481
|
+
async function collectReadableStream(stream) {
|
|
1500
1482
|
const chunks = [];
|
|
1501
1483
|
const reader = stream.getReader();
|
|
1502
|
-
let isDone = false;
|
|
1503
1484
|
let length = 0;
|
|
1504
|
-
while (
|
|
1485
|
+
while (true) {
|
|
1505
1486
|
const { done, value } = await reader.read();
|
|
1506
1487
|
if (value) {
|
|
1507
1488
|
chunks.push(value);
|
|
1508
1489
|
length += value.length;
|
|
1509
1490
|
}
|
|
1510
|
-
|
|
1511
|
-
|
|
1512
|
-
|
|
1513
|
-
let offset = 0;
|
|
1514
|
-
for (const chunk of chunks) {
|
|
1515
|
-
collected.set(chunk, offset);
|
|
1516
|
-
offset += chunk.length;
|
|
1491
|
+
if (done) {
|
|
1492
|
+
break;
|
|
1493
|
+
}
|
|
1517
1494
|
}
|
|
1518
|
-
return
|
|
1519
|
-
}
|
|
1520
|
-
function readToBase64(blob) {
|
|
1521
|
-
return new Promise((resolve, reject) => {
|
|
1522
|
-
const reader = new FileReader();
|
|
1523
|
-
reader.onloadend = () => {
|
|
1524
|
-
if (reader.readyState !== 2) {
|
|
1525
|
-
return reject(new Error("Reader aborted too early"));
|
|
1526
|
-
}
|
|
1527
|
-
const result = (reader.result ?? "");
|
|
1528
|
-
const commaIndex = result.indexOf(",");
|
|
1529
|
-
const dataOffset = commaIndex > -1 ? commaIndex + 1 : result.length;
|
|
1530
|
-
resolve(result.substring(dataOffset));
|
|
1531
|
-
};
|
|
1532
|
-
reader.onabort = () => reject(new Error("Read aborted"));
|
|
1533
|
-
reader.onerror = () => reject(reader.error);
|
|
1534
|
-
reader.readAsDataURL(blob);
|
|
1535
|
-
});
|
|
1495
|
+
return concatBytes(chunks, length);
|
|
1536
1496
|
}
|
|
1537
1497
|
|
|
1538
1498
|
const ERR_MSG_STREAM_HAS_BEEN_TRANSFORMED$1 = "The stream has already been transformed.";
|
|
@@ -1595,53 +1555,35 @@ const sdkStreamMixin$1 = (stream) => {
|
|
|
1595
1555
|
};
|
|
1596
1556
|
const isBlobInstance = (stream) => typeof Blob === "function" && stream instanceof Blob;
|
|
1597
1557
|
|
|
1598
|
-
class Collector extends Writable {
|
|
1599
|
-
bufferedBytes = [];
|
|
1600
|
-
_write(chunk, encoding, callback) {
|
|
1601
|
-
this.bufferedBytes.push(chunk);
|
|
1602
|
-
callback();
|
|
1603
|
-
}
|
|
1604
|
-
}
|
|
1605
|
-
const isReadableStreamInstance = (stream) => typeof ReadableStream === "function" && stream instanceof ReadableStream;
|
|
1606
|
-
async function collectReadableStream(stream) {
|
|
1607
|
-
const chunks = [];
|
|
1608
|
-
const reader = stream.getReader();
|
|
1609
|
-
let isDone = false;
|
|
1610
|
-
let length = 0;
|
|
1611
|
-
while (!isDone) {
|
|
1612
|
-
const { done, value } = await reader.read();
|
|
1613
|
-
if (value) {
|
|
1614
|
-
chunks.push(value);
|
|
1615
|
-
length += value.length;
|
|
1616
|
-
}
|
|
1617
|
-
isDone = done;
|
|
1618
|
-
}
|
|
1619
|
-
const collected = new Uint8Array(length);
|
|
1620
|
-
let offset = 0;
|
|
1621
|
-
for (const chunk of chunks) {
|
|
1622
|
-
collected.set(chunk, offset);
|
|
1623
|
-
offset += chunk.length;
|
|
1624
|
-
}
|
|
1625
|
-
return collected;
|
|
1626
|
-
}
|
|
1627
1558
|
const streamCollector = (stream) => {
|
|
1628
|
-
if (
|
|
1559
|
+
if (isBlob(stream)) {
|
|
1560
|
+
return collectBlob(stream);
|
|
1561
|
+
}
|
|
1562
|
+
if (isReadableStream(stream)) {
|
|
1629
1563
|
return collectReadableStream(stream);
|
|
1630
1564
|
}
|
|
1631
1565
|
return new Promise((resolve, reject) => {
|
|
1632
1566
|
const collector = new Collector();
|
|
1633
|
-
stream
|
|
1634
|
-
|
|
1567
|
+
const nodeStream = stream;
|
|
1568
|
+
nodeStream.pipe(collector);
|
|
1569
|
+
nodeStream.on("error", (err) => {
|
|
1635
1570
|
collector.end();
|
|
1636
1571
|
reject(err);
|
|
1637
1572
|
});
|
|
1638
1573
|
collector.on("error", reject);
|
|
1639
1574
|
collector.on("finish", function () {
|
|
1640
|
-
const bytes =
|
|
1575
|
+
const bytes = concatBytes(this.bufferedBytes);
|
|
1641
1576
|
resolve(bytes);
|
|
1642
1577
|
});
|
|
1643
1578
|
});
|
|
1644
1579
|
};
|
|
1580
|
+
class Collector extends Writable {
|
|
1581
|
+
bufferedBytes = [];
|
|
1582
|
+
_write(chunk, encoding, callback) {
|
|
1583
|
+
this.bufferedBytes.push(chunk);
|
|
1584
|
+
callback();
|
|
1585
|
+
}
|
|
1586
|
+
}
|
|
1645
1587
|
|
|
1646
1588
|
const ERR_MSG_STREAM_HAS_BEEN_TRANSFORMED = "The stream has already been transformed.";
|
|
1647
1589
|
const sdkStreamMixin = (stream) => {
|
|
@@ -1709,7 +1651,7 @@ async function splitStream(stream) {
|
|
|
1709
1651
|
return [stream1, stream2];
|
|
1710
1652
|
}
|
|
1711
1653
|
|
|
1712
|
-
class Uint8ArrayBlobAdapter extends bindUint8ArrayBlobAdapter(toUtf8$1, fromUtf8$1, toBase64$1, fromBase64
|
|
1654
|
+
class Uint8ArrayBlobAdapter extends bindUint8ArrayBlobAdapter(toUtf8$1, fromUtf8$1, toBase64$1, fromBase64) {
|
|
1713
1655
|
}
|
|
1714
1656
|
const _getRandomValues = getRandomValues;
|
|
1715
1657
|
const v4 = bindV4(_getRandomValues);
|
|
@@ -1724,6 +1666,7 @@ exports._parseEpochTimestamp = _parseEpochTimestamp;
|
|
|
1724
1666
|
exports._parseRfc3339DateTimeWithOffset = _parseRfc3339DateTimeWithOffset;
|
|
1725
1667
|
exports._parseRfc7231DateTime = _parseRfc7231DateTime;
|
|
1726
1668
|
exports.calculateBodyLength = calculateBodyLength;
|
|
1669
|
+
exports.concatBytes = concatBytes;
|
|
1727
1670
|
exports.copyDocumentWithTransform = copyDocumentWithTransform;
|
|
1728
1671
|
exports.createBufferedReadable = createBufferedReadable;
|
|
1729
1672
|
exports.createChecksumStream = createChecksumStream;
|
|
@@ -1743,7 +1686,7 @@ exports.expectShort = expectShort;
|
|
|
1743
1686
|
exports.expectString = expectString;
|
|
1744
1687
|
exports.expectUnion = expectUnion;
|
|
1745
1688
|
exports.fromArrayBuffer = fromArrayBuffer;
|
|
1746
|
-
exports.fromBase64 = fromBase64
|
|
1689
|
+
exports.fromBase64 = fromBase64;
|
|
1747
1690
|
exports.fromHex = fromHex;
|
|
1748
1691
|
exports.fromString = fromString;
|
|
1749
1692
|
exports.fromUtf8 = fromUtf8$1;
|
|
@@ -1772,6 +1715,7 @@ exports.serializerMiddlewareOption = serializerMiddlewareOption;
|
|
|
1772
1715
|
exports.splitEvery = splitEvery;
|
|
1773
1716
|
exports.splitHeader = splitHeader;
|
|
1774
1717
|
exports.splitStream = splitStream;
|
|
1718
|
+
exports.streamCollector = streamCollector;
|
|
1775
1719
|
exports.strictParseByte = strictParseByte;
|
|
1776
1720
|
exports.strictParseDouble = strictParseDouble;
|
|
1777
1721
|
exports.strictParseFloat = strictParseFloat;
|