@cdk8s/awscdk-resolver 0.0.612 → 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.
Files changed (192) hide show
  1. package/.jsii +3 -3
  2. package/lib/resolve.js +1 -1
  3. package/node_modules/@aws-sdk/client-cloudformation/dist-cjs/index.js +3710 -15
  4. package/node_modules/@aws-sdk/client-cloudformation/dist-types/runtimeConfig.browser.d.ts +1 -1
  5. package/node_modules/@aws-sdk/client-cloudformation/dist-types/runtimeConfig.d.ts +1 -1
  6. package/node_modules/@aws-sdk/client-cloudformation/dist-types/runtimeConfig.native.d.ts +1 -1
  7. package/node_modules/@aws-sdk/client-cloudformation/dist-types/ts3.4/runtimeConfig.browser.d.ts +7 -1
  8. package/node_modules/@aws-sdk/client-cloudformation/dist-types/ts3.4/runtimeConfig.d.ts +7 -1
  9. package/node_modules/@aws-sdk/client-cloudformation/dist-types/ts3.4/runtimeConfig.native.d.ts +7 -1
  10. package/node_modules/@aws-sdk/client-cloudformation/package.json +8 -8
  11. package/node_modules/@aws-sdk/core/account-id-endpoint.d.ts +1 -3
  12. package/node_modules/@aws-sdk/core/client.d.ts +1 -3
  13. package/node_modules/@aws-sdk/core/httpAuthSchemes.d.ts +1 -3
  14. package/node_modules/@aws-sdk/core/package.json +8 -14
  15. package/node_modules/@aws-sdk/core/protocols.d.ts +1 -3
  16. package/node_modules/@aws-sdk/core/util.d.ts +1 -3
  17. package/node_modules/@aws-sdk/credential-provider-env/package.json +5 -5
  18. package/node_modules/@aws-sdk/credential-provider-http/dist-cjs/index.js +172 -1
  19. package/node_modules/@aws-sdk/credential-provider-http/package.json +8 -10
  20. package/node_modules/@aws-sdk/credential-provider-ini/package.json +13 -13
  21. package/node_modules/@aws-sdk/credential-provider-login/package.json +6 -6
  22. package/node_modules/@aws-sdk/credential-provider-node/package.json +11 -11
  23. package/node_modules/@aws-sdk/credential-provider-process/package.json +5 -5
  24. package/node_modules/@aws-sdk/credential-provider-sso/package.json +7 -7
  25. package/node_modules/@aws-sdk/credential-provider-web-identity/dist-cjs/index.js +58 -3
  26. package/node_modules/@aws-sdk/credential-provider-web-identity/package.json +7 -8
  27. package/node_modules/@aws-sdk/nested-clients/cognito-identity.d.ts +1 -3
  28. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/cognito-identity/index.js +1 -1
  29. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/signin/index.js +1 -1
  30. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso/index.js +1 -1
  31. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/index.js +1 -1
  32. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/index.js +1 -1
  33. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/cognito-identity/runtimeConfig.browser.d.ts +1 -1
  34. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/cognito-identity/runtimeConfig.d.ts +1 -1
  35. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/cognito-identity/runtimeConfig.native.d.ts +1 -1
  36. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/signin/runtimeConfig.browser.d.ts +1 -1
  37. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/signin/runtimeConfig.d.ts +1 -1
  38. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/signin/runtimeConfig.native.d.ts +1 -1
  39. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso/runtimeConfig.browser.d.ts +1 -1
  40. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso/runtimeConfig.d.ts +1 -1
  41. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso/runtimeConfig.native.d.ts +1 -1
  42. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/runtimeConfig.browser.d.ts +1 -1
  43. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/runtimeConfig.d.ts +1 -1
  44. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/runtimeConfig.native.d.ts +1 -1
  45. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/runtimeConfig.browser.d.ts +1 -1
  46. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/runtimeConfig.d.ts +1 -1
  47. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/runtimeConfig.native.d.ts +1 -1
  48. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/cognito-identity/runtimeConfig.browser.d.ts +7 -1
  49. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/cognito-identity/runtimeConfig.d.ts +7 -1
  50. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/cognito-identity/runtimeConfig.native.d.ts +7 -1
  51. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/signin/runtimeConfig.browser.d.ts +7 -1
  52. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/signin/runtimeConfig.d.ts +7 -1
  53. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/signin/runtimeConfig.native.d.ts +7 -1
  54. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso/runtimeConfig.browser.d.ts +7 -1
  55. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso/runtimeConfig.d.ts +7 -1
  56. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso/runtimeConfig.native.d.ts +7 -1
  57. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso-oidc/runtimeConfig.browser.d.ts +7 -1
  58. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso-oidc/runtimeConfig.d.ts +7 -1
  59. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso-oidc/runtimeConfig.native.d.ts +7 -1
  60. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/runtimeConfig.browser.d.ts +7 -1
  61. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/runtimeConfig.d.ts +7 -1
  62. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/runtimeConfig.native.d.ts +7 -1
  63. package/node_modules/@aws-sdk/nested-clients/package.json +8 -8
  64. package/node_modules/@aws-sdk/nested-clients/signin.d.ts +1 -3
  65. package/node_modules/@aws-sdk/nested-clients/sso-oidc.d.ts +1 -3
  66. package/node_modules/@aws-sdk/nested-clients/sso.d.ts +1 -3
  67. package/node_modules/@aws-sdk/nested-clients/sts.d.ts +1 -3
  68. package/node_modules/@aws-sdk/signature-v4-multi-region/package.json +4 -4
  69. package/node_modules/@aws-sdk/token-providers/package.json +6 -6
  70. package/node_modules/@aws-sdk/types/package.json +2 -2
  71. package/node_modules/@aws-sdk/xml-builder/dist-cjs/index.js +236 -3
  72. package/node_modules/@aws-sdk/xml-builder/package.json +3 -4
  73. package/node_modules/@smithy/core/dist-cjs/submodules/checksum/index.browser.js +358 -145
  74. package/node_modules/@smithy/core/dist-cjs/submodules/checksum/index.js +462 -142
  75. package/node_modules/@smithy/core/dist-cjs/submodules/checksum/index.native.js +358 -145
  76. package/node_modules/@smithy/core/dist-cjs/submodules/config/index.js +108 -63
  77. package/node_modules/@smithy/core/dist-cjs/submodules/event-streams/index.browser.js +11 -8
  78. package/node_modules/@smithy/core/dist-cjs/submodules/event-streams/index.js +11 -8
  79. package/node_modules/@smithy/core/dist-cjs/submodules/protocols/index.js +5 -2
  80. package/node_modules/@smithy/core/dist-cjs/submodules/serde/index.browser.js +30 -36
  81. package/node_modules/@smithy/core/dist-cjs/submodules/serde/index.js +54 -110
  82. package/node_modules/@smithy/core/dist-cjs/submodules/serde/index.native.js +30 -36
  83. package/node_modules/@smithy/core/dist-es/submodules/checksum/crc32/Crc32Js.js +30 -0
  84. package/node_modules/@smithy/core/dist-es/submodules/checksum/crc32/Crc32Node.js +24 -0
  85. package/node_modules/@smithy/core/dist-es/submodules/checksum/index.browser.js +7 -1
  86. package/node_modules/@smithy/core/dist-es/submodules/checksum/index.js +7 -1
  87. package/node_modules/@smithy/core/dist-es/submodules/checksum/index.native.js +7 -1
  88. package/node_modules/@smithy/core/dist-es/submodules/checksum/md5/Md5Js.js +92 -0
  89. package/node_modules/@smithy/core/dist-es/submodules/checksum/md5/Md5Node.js +29 -0
  90. package/node_modules/@smithy/core/dist-es/submodules/checksum/sha256/Sha256Js.js +179 -0
  91. package/node_modules/@smithy/core/dist-es/submodules/checksum/sha256/Sha256Node.js +59 -0
  92. package/node_modules/@smithy/core/dist-es/submodules/checksum/sha256/Sha256WebCrypto.js +71 -0
  93. package/node_modules/@smithy/core/dist-es/submodules/config/config-resolver/regionConfig/config.js +6 -1
  94. package/node_modules/@smithy/core/dist-es/submodules/config/config-resolver/regionConfig/getInstanceMetadataRegion.js +92 -0
  95. package/node_modules/@smithy/core/dist-es/submodules/config/defaults-mode/constants.js +3 -0
  96. package/node_modules/@smithy/core/dist-es/submodules/config/defaults-mode/resolveDefaultsModeConfig.js +3 -56
  97. package/node_modules/@smithy/core/dist-es/submodules/event-streams/eventstream-codec/EventStreamCodec.js +5 -3
  98. package/node_modules/@smithy/core/dist-es/submodules/event-streams/eventstream-codec/splitMessage.js +7 -6
  99. package/node_modules/@smithy/core/dist-es/submodules/protocols/HttpProtocol.js +4 -1
  100. package/node_modules/@smithy/core/dist-es/submodules/serde/concatBytes.js +15 -0
  101. package/node_modules/@smithy/core/dist-es/submodules/serde/index.browser.js +2 -0
  102. package/node_modules/@smithy/core/dist-es/submodules/serde/index.js +2 -0
  103. package/node_modules/@smithy/core/dist-es/submodules/serde/index.native.js +2 -0
  104. package/node_modules/@smithy/core/dist-es/submodules/serde/util-stream/checksum/ChecksumStream.js +4 -0
  105. package/node_modules/@smithy/core/dist-es/submodules/serde/util-stream/headStream.js +2 -1
  106. package/node_modules/@smithy/core/dist-es/submodules/serde/util-stream/stream-collector.browser.js +12 -38
  107. package/node_modules/@smithy/core/dist-es/submodules/serde/util-stream/stream-collector.js +18 -33
  108. package/node_modules/@smithy/core/dist-es/submodules/serde/util-utf8/toUint8Array.browser.js +3 -0
  109. package/node_modules/@smithy/core/dist-es/submodules/serde/util-utf8/toUint8Array.js +3 -0
  110. package/node_modules/@smithy/core/dist-types/submodules/checksum/crc32/Crc32Js.d.ts +18 -0
  111. package/node_modules/@smithy/core/dist-types/submodules/checksum/crc32/Crc32Node.d.ts +18 -0
  112. package/node_modules/@smithy/core/dist-types/submodules/checksum/index.browser.d.ts +7 -1
  113. package/node_modules/@smithy/core/dist-types/submodules/checksum/index.d.ts +7 -1
  114. package/node_modules/@smithy/core/dist-types/submodules/checksum/index.native.d.ts +7 -1
  115. package/node_modules/@smithy/core/dist-types/submodules/checksum/md5/Md5Js.d.ts +19 -0
  116. package/node_modules/@smithy/core/dist-types/submodules/checksum/md5/Md5Node.d.ts +17 -0
  117. package/node_modules/@smithy/core/dist-types/submodules/checksum/sha256/Sha256Js.d.ts +28 -0
  118. package/node_modules/@smithy/core/dist-types/submodules/checksum/sha256/Sha256Node.d.ts +13 -0
  119. package/node_modules/@smithy/core/dist-types/submodules/checksum/sha256/Sha256WebCrypto.d.ts +22 -0
  120. package/node_modules/@smithy/core/dist-types/submodules/config/config-resolver/regionConfig/getInstanceMetadataRegion.d.ts +7 -0
  121. package/node_modules/@smithy/core/dist-types/submodules/config/defaults-mode/constants.d.ts +12 -0
  122. package/node_modules/@smithy/core/dist-types/submodules/serde/concatBytes.d.ts +6 -0
  123. package/node_modules/@smithy/core/dist-types/submodules/serde/index.browser.d.ts +2 -0
  124. package/node_modules/@smithy/core/dist-types/submodules/serde/index.d.ts +2 -0
  125. package/node_modules/@smithy/core/dist-types/submodules/serde/index.native.d.ts +2 -0
  126. package/node_modules/@smithy/core/dist-types/submodules/serde/util-stream/checksum/ChecksumStream.d.ts +9 -0
  127. package/node_modules/@smithy/core/dist-types/submodules/serde/util-stream/stream-collector.browser.d.ts +8 -2
  128. package/node_modules/@smithy/core/dist-types/submodules/serde/util-stream/stream-collector.d.ts +4 -1
  129. package/node_modules/@smithy/core/package.json +4 -4
  130. package/node_modules/@smithy/credential-provider-imds/package.json +2 -2
  131. package/node_modules/@smithy/fetch-http-handler/dist-cjs/index.js +2 -55
  132. package/node_modules/@smithy/fetch-http-handler/dist-es/index.js +2 -2
  133. package/node_modules/@smithy/fetch-http-handler/dist-types/index.d.ts +2 -2
  134. package/node_modules/@smithy/fetch-http-handler/package.json +2 -2
  135. package/node_modules/@smithy/node-http-handler/dist-cjs/index.js +3 -51
  136. package/node_modules/@smithy/node-http-handler/dist-es/index.js +3 -3
  137. package/node_modules/@smithy/node-http-handler/dist-types/index.d.ts +3 -3
  138. package/node_modules/@smithy/node-http-handler/package.json +2 -2
  139. package/node_modules/@smithy/signature-v4/package.json +2 -3
  140. package/package.json +5 -5
  141. package/node_modules/@aws-crypto/crc32/CHANGELOG.md +0 -100
  142. package/node_modules/@aws-crypto/crc32/LICENSE +0 -201
  143. package/node_modules/@aws-crypto/crc32/README.md +0 -16
  144. package/node_modules/@aws-crypto/crc32/build/main/aws_crc32.d.ts +0 -7
  145. package/node_modules/@aws-crypto/crc32/build/main/aws_crc32.js +0 -31
  146. package/node_modules/@aws-crypto/crc32/build/main/aws_crc32.js.map +0 -1
  147. package/node_modules/@aws-crypto/crc32/build/main/index.d.ts +0 -7
  148. package/node_modules/@aws-crypto/crc32/build/main/index.js +0 -108
  149. package/node_modules/@aws-crypto/crc32/build/main/index.js.map +0 -1
  150. package/node_modules/@aws-crypto/crc32/build/module/aws_crc32.d.ts +0 -7
  151. package/node_modules/@aws-crypto/crc32/build/module/aws_crc32.js +0 -28
  152. package/node_modules/@aws-crypto/crc32/build/module/aws_crc32.js.map +0 -1
  153. package/node_modules/@aws-crypto/crc32/build/module/index.d.ts +0 -7
  154. package/node_modules/@aws-crypto/crc32/build/module/index.js +0 -103
  155. package/node_modules/@aws-crypto/crc32/build/module/index.js.map +0 -1
  156. package/node_modules/@aws-crypto/crc32/package.json +0 -32
  157. package/node_modules/@aws-crypto/crc32/src/aws_crc32.ts +0 -24
  158. package/node_modules/@aws-crypto/crc32/src/index.ts +0 -92
  159. package/node_modules/@aws-crypto/crc32/tsconfig.json +0 -9
  160. package/node_modules/@aws-crypto/crc32/tsconfig.module.json +0 -7
  161. package/node_modules/@aws-sdk/client-cloudformation/dist-cjs/auth/httpAuthSchemeProvider.js +0 -40
  162. package/node_modules/@aws-sdk/client-cloudformation/dist-cjs/endpoint/bdd.js +0 -49
  163. package/node_modules/@aws-sdk/client-cloudformation/dist-cjs/endpoint/endpointResolver.js +0 -14
  164. package/node_modules/@aws-sdk/client-cloudformation/dist-cjs/models/CloudFormationServiceException.js +0 -8
  165. package/node_modules/@aws-sdk/client-cloudformation/dist-cjs/models/errors.js +0 -407
  166. package/node_modules/@aws-sdk/client-cloudformation/dist-cjs/runtimeConfig.browser.js +0 -32
  167. package/node_modules/@aws-sdk/client-cloudformation/dist-cjs/runtimeConfig.js +0 -45
  168. package/node_modules/@aws-sdk/client-cloudformation/dist-cjs/runtimeConfig.native.js +0 -12
  169. package/node_modules/@aws-sdk/client-cloudformation/dist-cjs/runtimeConfig.shared.js +0 -39
  170. package/node_modules/@aws-sdk/client-cloudformation/dist-cjs/schemas/schemas_0.js +0 -3022
  171. package/node_modules/@aws-sdk/core/dist-cjs/submodules/client/index.browser.js +0 -869
  172. package/node_modules/@aws-sdk/core/dist-cjs/submodules/client/index.native.js +0 -862
  173. package/node_modules/@aws-sdk/credential-provider-http/dist-cjs/fromHttp/checkUrl.js +0 -42
  174. package/node_modules/@aws-sdk/credential-provider-http/dist-cjs/fromHttp/fromHttp.browser.js +0 -27
  175. package/node_modules/@aws-sdk/credential-provider-http/dist-cjs/fromHttp/fromHttp.js +0 -71
  176. package/node_modules/@aws-sdk/credential-provider-http/dist-cjs/fromHttp/requestHelpers.js +0 -49
  177. package/node_modules/@aws-sdk/credential-provider-http/dist-cjs/fromHttp/retry-wrapper.js +0 -13
  178. package/node_modules/@aws-sdk/credential-provider-http/dist-cjs/index.browser.js +0 -2
  179. package/node_modules/@aws-sdk/credential-provider-web-identity/dist-cjs/fromTokenFile.js +0 -29
  180. package/node_modules/@aws-sdk/credential-provider-web-identity/dist-cjs/fromWebToken.js +0 -25
  181. package/node_modules/@aws-sdk/xml-builder/dist-cjs/xml-parser.browser.js +0 -57
  182. package/node_modules/@aws-sdk/xml-builder/dist-cjs/xml-parser.js +0 -234
  183. package/node_modules/@smithy/core/dist-es/submodules/checksum/md5-js/constants.js +0 -3
  184. package/node_modules/@smithy/core/dist-es/submodules/checksum/md5-js/md5.js +0 -168
  185. package/node_modules/@smithy/core/dist-types/submodules/checksum/md5-js/constants.d.ts +0 -12
  186. package/node_modules/@smithy/core/dist-types/submodules/checksum/md5-js/md5.d.ts +0 -16
  187. package/node_modules/@smithy/fetch-http-handler/dist-es/stream-collector.js +0 -53
  188. package/node_modules/@smithy/fetch-http-handler/dist-types/stream-collector.d.ts +0 -2
  189. package/node_modules/@smithy/node-http-handler/dist-es/stream-collector/collector.js +0 -8
  190. package/node_modules/@smithy/node-http-handler/dist-es/stream-collector/index.js +0 -41
  191. package/node_modules/@smithy/node-http-handler/dist-types/stream-collector/collector.d.ts +0 -5
  192. 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
- if (!process.env[ENV_IMDS_DISABLED]) {
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("@aws-crypto/crc32");
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().update(new Uint8Array(buffer, byteOffset, PRELUDE_LENGTH));
248
- if (expectedPreludeChecksum !== checksummer.digest()) {
249
- throw new Error(`The prelude checksum specified in the message (${expectedPreludeChecksum}) does not match the calculated CRC32 checksum (${checksummer.digest()})`);
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.digest()) {
253
- throw new Error(`The message checksum (${checksummer.digest()}) did not match the expected value of ${expectedMessageChecksum}`);
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
- view.setUint32(8, checksum.update(out.subarray(0, 8)).digest(), false);
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
- view.setUint32(length - 4, checksum.update(out.subarray(8, length - 4)).digest(), false);
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("@aws-crypto/crc32");
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().update(new Uint8Array(buffer, byteOffset, PRELUDE_LENGTH));
249
- if (expectedPreludeChecksum !== checksummer.digest()) {
250
- throw new Error(`The prelude checksum specified in the message (${expectedPreludeChecksum}) does not match the calculated CRC32 checksum (${checksummer.digest()})`);
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.digest()) {
254
- throw new Error(`The message checksum (${checksummer.digest()}) did not match the expected value of ${expectedMessageChecksum}`);
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
- view.setUint32(8, checksum.update(out.subarray(0, 8)).digest(), false);
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
- view.setUint32(length - 4, checksum.update(out.subarray(8, length - 4)).digest(), false);
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 { isValidHostname, parseQueryString, parseUrl } = require("@smithy/core/transport");
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 ((typeof Blob === "function" && stream instanceof Blob) || stream.constructor?.name === "Blob") {
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 collectStream(stream);
1226
+ return collectReadableStream(stream);
1211
1227
  };
1212
1228
  async function collectBlob(blob) {
1213
- const base64 = await readToBase64(blob);
1214
- const arrayBuffer = fromBase64(base64);
1215
- return new Uint8Array(arrayBuffer);
1229
+ return blob.arrayBuffer().then((ab) => new Uint8Array(ab));
1216
1230
  }
1217
- async function collectStream(stream) {
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 (!isDone) {
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
- isDone = done;
1229
- }
1230
- const collected = new Uint8Array(length);
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 collected;
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$1 = (input) => {
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
- const alphabetByEncoding = Object.entries(chars).reduce((acc, [i, c]) => {
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 = new Uint8Array(Buffer.concat(this.buffers));
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 ((typeof Blob === "function" && stream instanceof Blob) || stream.constructor?.name === "Blob") {
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 collectStream(stream);
1476
+ return collectReadableStream(stream);
1493
1477
  };
1494
1478
  async function collectBlob(blob) {
1495
- const base64 = await readToBase64(blob);
1496
- const arrayBuffer = fromBase64(base64);
1497
- return new Uint8Array(arrayBuffer);
1479
+ return blob.arrayBuffer().then((ab) => new Uint8Array(ab));
1498
1480
  }
1499
- async function collectStream(stream) {
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 (!isDone) {
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
- isDone = done;
1511
- }
1512
- const collected = new Uint8Array(length);
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 collected;
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 (isReadableStreamInstance(stream)) {
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.pipe(collector);
1634
- stream.on("error", (err) => {
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 = new Uint8Array(Buffer.concat(this.bufferedBytes));
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$1) {
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$1;
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;