@cdk8s/awscdk-resolver 0.0.539 → 0.0.540

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 (248) hide show
  1. package/.jsii +3 -3
  2. package/lib/resolve.js +1 -1
  3. package/node_modules/@aws-sdk/client-cloudformation/dist-cjs/endpoint/bdd.js +52 -0
  4. package/node_modules/@aws-sdk/client-cloudformation/dist-cjs/endpoint/endpointResolver.js +2 -2
  5. package/node_modules/@aws-sdk/client-cloudformation/dist-es/endpoint/bdd.js +49 -0
  6. package/node_modules/@aws-sdk/client-cloudformation/dist-es/endpoint/endpointResolver.js +3 -3
  7. package/node_modules/@aws-sdk/client-cloudformation/dist-types/endpoint/bdd.d.ts +2 -0
  8. package/node_modules/@aws-sdk/client-cloudformation/dist-types/ts3.4/endpoint/bdd.d.ts +2 -0
  9. package/node_modules/@aws-sdk/client-cloudformation/package.json +5 -5
  10. package/node_modules/@aws-sdk/core/dist-cjs/index.js +18 -10
  11. package/node_modules/@aws-sdk/core/dist-cjs/submodules/protocols/index.js +18 -10
  12. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/JsonShapeDeserializer.js +6 -4
  13. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/JsonShapeSerializer.js +6 -3
  14. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/experimental/SinglePassJsonShapeSerializer.js +2 -1
  15. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/query/QueryShapeSerializer.js +2 -1
  16. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/xml/XmlShapeSerializer.js +4 -2
  17. package/node_modules/@aws-sdk/core/package.json +1 -1
  18. package/node_modules/@aws-sdk/credential-provider-env/package.json +2 -2
  19. package/node_modules/@aws-sdk/credential-provider-http/package.json +2 -2
  20. package/node_modules/@aws-sdk/credential-provider-ini/package.json +9 -9
  21. package/node_modules/@aws-sdk/credential-provider-login/package.json +3 -3
  22. package/node_modules/@aws-sdk/credential-provider-node/package.json +7 -7
  23. package/node_modules/@aws-sdk/credential-provider-process/package.json +2 -2
  24. package/node_modules/@aws-sdk/credential-provider-sso/package.json +4 -4
  25. package/node_modules/@aws-sdk/credential-provider-web-identity/package.json +3 -3
  26. package/node_modules/@aws-sdk/middleware-sdk-s3/LICENSE +201 -0
  27. package/node_modules/@aws-sdk/middleware-sdk-s3/README.md +4 -0
  28. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-cjs/index.js +597 -0
  29. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/bucket-endpoint-middleware.js +36 -0
  30. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/check-content-length-header.js +32 -0
  31. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/index.js +9 -0
  32. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/protocol/S3RestXmlProtocol.js +25 -0
  33. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/region-redirect-endpoint-middleware.js +41 -0
  34. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/region-redirect-middleware.js +42 -0
  35. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/s3-expires-middleware.js +33 -0
  36. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/s3-express/classes/S3ExpressIdentityCache.js +39 -0
  37. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/s3-express/classes/S3ExpressIdentityCacheEntry.js +14 -0
  38. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/s3-express/classes/S3ExpressIdentityProviderImpl.js +49 -0
  39. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/s3-express/classes/SignatureV4S3Express.js +41 -0
  40. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/s3-express/constants.js +13 -0
  41. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/s3-express/functions/s3ExpressHttpSigningMiddleware.js +38 -0
  42. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/s3-express/functions/s3ExpressMiddleware.js +41 -0
  43. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/s3-express/functions/signS3Express.js +7 -0
  44. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/s3-express/index.js +7 -0
  45. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/s3-express/interfaces/S3ExpressIdentity.js +1 -0
  46. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/s3-express/interfaces/S3ExpressIdentityProvider.js +1 -0
  47. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/s3Configuration.js +17 -0
  48. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/throw-200-exceptions.js +67 -0
  49. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/validate-bucket-name.js +25 -0
  50. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-types/bucket-endpoint-middleware.d.ts +13 -0
  51. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-types/check-content-length-header.d.ts +16 -0
  52. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-types/index.d.ts +9 -0
  53. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-types/protocol/S3RestXmlProtocol.d.ts +20 -0
  54. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-types/region-redirect-endpoint-middleware.d.ts +10 -0
  55. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-types/region-redirect-middleware.d.ts +20 -0
  56. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-types/s3-expires-middleware.d.ts +26 -0
  57. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-types/s3-express/classes/S3ExpressIdentityCache.d.ts +16 -0
  58. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-types/s3-express/classes/S3ExpressIdentityCacheEntry.d.ts +16 -0
  59. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-types/s3-express/classes/S3ExpressIdentityProviderImpl.d.ts +32 -0
  60. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-types/s3-express/classes/SignatureV4S3Express.d.ts +17 -0
  61. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-types/s3-express/constants.d.ts +37 -0
  62. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-types/s3-express/functions/s3ExpressHttpSigningMiddleware.d.ts +27 -0
  63. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-types/s3-express/functions/s3ExpressMiddleware.d.ts +32 -0
  64. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-types/s3-express/functions/signS3Express.d.ts +9 -0
  65. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-types/s3-express/index.d.ts +9 -0
  66. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-types/s3-express/interfaces/S3ExpressIdentity.d.ts +6 -0
  67. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-types/s3-express/interfaces/S3ExpressIdentityProvider.d.ts +12 -0
  68. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-types/s3Configuration.d.ts +79 -0
  69. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-types/throw-200-exceptions.d.ts +20 -0
  70. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-types/ts3.4/bucket-endpoint-middleware.d.ts +9 -0
  71. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-types/ts3.4/check-content-length-header.d.ts +13 -0
  72. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-types/ts3.4/index.d.ts +9 -0
  73. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-types/ts3.4/protocol/S3RestXmlProtocol.d.ts +15 -0
  74. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-types/ts3.4/region-redirect-endpoint-middleware.d.ts +6 -0
  75. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-types/ts3.4/region-redirect-middleware.d.ts +17 -0
  76. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-types/ts3.4/s3-expires-middleware.d.ts +14 -0
  77. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-types/ts3.4/s3-express/classes/S3ExpressIdentityCache.d.ts +14 -0
  78. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-types/ts3.4/s3-express/classes/S3ExpressIdentityCacheEntry.d.ts +12 -0
  79. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-types/ts3.4/s3-express/classes/S3ExpressIdentityProviderImpl.d.ts +31 -0
  80. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-types/ts3.4/s3-express/classes/SignatureV4S3Express.d.ts +19 -0
  81. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-types/ts3.4/s3-express/constants.d.ts +11 -0
  82. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-types/ts3.4/s3-express/functions/s3ExpressHttpSigningMiddleware.d.ts +40 -0
  83. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-types/ts3.4/s3-express/functions/s3ExpressMiddleware.d.ts +27 -0
  84. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-types/ts3.4/s3-express/functions/signS3Express.d.ts +21 -0
  85. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-types/ts3.4/s3-express/index.d.ts +17 -0
  86. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-types/ts3.4/s3-express/interfaces/S3ExpressIdentity.d.ts +2 -0
  87. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-types/ts3.4/s3-express/interfaces/S3ExpressIdentityProvider.d.ts +8 -0
  88. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-types/ts3.4/s3Configuration.d.ts +33 -0
  89. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-types/ts3.4/throw-200-exceptions.d.ts +17 -0
  90. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-types/ts3.4/validate-bucket-name.d.ts +13 -0
  91. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-types/validate-bucket-name.d.ts +14 -0
  92. package/node_modules/@aws-sdk/middleware-sdk-s3/package.json +72 -0
  93. package/node_modules/@aws-sdk/middleware-user-agent/package.json +2 -2
  94. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/cognito-identity/endpoint/bdd.js +100 -0
  95. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/cognito-identity/endpoint/endpointResolver.js +2 -2
  96. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/signin/endpoint/bdd.js +90 -0
  97. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/signin/endpoint/endpointResolver.js +2 -2
  98. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso/endpoint/bdd.js +80 -0
  99. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso/endpoint/endpointResolver.js +2 -2
  100. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/endpoint/bdd.js +80 -0
  101. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/endpoint/endpointResolver.js +2 -2
  102. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/STSClient.js +1 -0
  103. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/auth/httpAuthSchemeProvider.js +87 -5
  104. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/endpoint/bdd.js +150 -0
  105. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/endpoint/endpointResolver.js +2 -2
  106. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/runtimeConfig.js +6 -0
  107. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/runtimeConfig.shared.js +7 -0
  108. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/cognito-identity/endpoint/bdd.js +97 -0
  109. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/cognito-identity/endpoint/endpointResolver.js +3 -3
  110. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/signin/endpoint/bdd.js +87 -0
  111. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/signin/endpoint/endpointResolver.js +3 -3
  112. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso/endpoint/bdd.js +77 -0
  113. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso/endpoint/endpointResolver.js +3 -3
  114. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/endpoint/bdd.js +77 -0
  115. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/endpoint/endpointResolver.js +3 -3
  116. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/STSClient.js +1 -0
  117. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/auth/httpAuthSchemeProvider.js +88 -4
  118. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/endpoint/bdd.js +147 -0
  119. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/endpoint/endpointResolver.js +3 -3
  120. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/runtimeConfig.js +7 -1
  121. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/runtimeConfig.shared.js +8 -1
  122. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/cognito-identity/endpoint/bdd.d.ts +2 -0
  123. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/signin/endpoint/bdd.d.ts +2 -0
  124. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso/endpoint/bdd.d.ts +2 -0
  125. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/endpoint/bdd.d.ts +2 -0
  126. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/auth/httpAuthSchemeProvider.d.ts +15 -7
  127. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/endpoint/bdd.d.ts +2 -0
  128. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/runtimeConfig.browser.d.ts +3 -2
  129. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/runtimeConfig.d.ts +10 -4
  130. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/runtimeConfig.native.d.ts +3 -2
  131. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/runtimeConfig.shared.d.ts +3 -1
  132. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/cognito-identity/endpoint/bdd.d.ts +2 -0
  133. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/signin/endpoint/bdd.d.ts +2 -0
  134. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso/endpoint/bdd.d.ts +2 -0
  135. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso-oidc/endpoint/bdd.d.ts +2 -0
  136. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/auth/httpAuthSchemeProvider.d.ts +20 -9
  137. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/endpoint/bdd.d.ts +2 -0
  138. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/runtimeConfig.browser.d.ts +11 -5
  139. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/runtimeConfig.d.ts +35 -16
  140. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/runtimeConfig.native.d.ts +11 -5
  141. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/runtimeConfig.shared.d.ts +8 -1
  142. package/node_modules/@aws-sdk/nested-clients/package.json +5 -4
  143. package/node_modules/@aws-sdk/signature-v4-multi-region/LICENSE +201 -0
  144. package/node_modules/@aws-sdk/signature-v4-multi-region/README.md +32 -0
  145. package/node_modules/@aws-sdk/signature-v4-multi-region/dist-cjs/index.js +121 -0
  146. package/node_modules/@aws-sdk/signature-v4-multi-region/dist-es/SignatureV4MultiRegion.js +112 -0
  147. package/node_modules/@aws-sdk/signature-v4-multi-region/dist-es/index.js +2 -0
  148. package/node_modules/@aws-sdk/signature-v4-multi-region/dist-es/signature-v4-crt-container.js +3 -0
  149. package/node_modules/@aws-sdk/signature-v4-multi-region/dist-types/SignatureV4MultiRegion.d.ts +35 -0
  150. package/node_modules/@aws-sdk/signature-v4-multi-region/dist-types/index.d.ts +5 -0
  151. package/node_modules/@aws-sdk/signature-v4-multi-region/dist-types/signature-v4-crt-container.d.ts +28 -0
  152. package/node_modules/@aws-sdk/signature-v4-multi-region/dist-types/ts3.4/SignatureV4MultiRegion.d.ts +41 -0
  153. package/node_modules/@aws-sdk/signature-v4-multi-region/dist-types/ts3.4/index.d.ts +2 -0
  154. package/node_modules/@aws-sdk/signature-v4-multi-region/dist-types/ts3.4/signature-v4-crt-container.d.ts +20 -0
  155. package/node_modules/@aws-sdk/signature-v4-multi-region/package.json +61 -0
  156. package/node_modules/@aws-sdk/token-providers/package.json +3 -3
  157. package/node_modules/@aws-sdk/util-arn-parser/LICENSE +201 -0
  158. package/node_modules/@aws-sdk/util-arn-parser/README.md +4 -0
  159. package/node_modules/@aws-sdk/util-arn-parser/dist-cjs/index.js +27 -0
  160. package/node_modules/@aws-sdk/util-arn-parser/dist-es/index.js +21 -0
  161. package/node_modules/@aws-sdk/util-arn-parser/dist-types/index.d.ts +32 -0
  162. package/node_modules/@aws-sdk/util-arn-parser/dist-types/ts3.4/index.d.ts +14 -0
  163. package/node_modules/@aws-sdk/util-arn-parser/package.json +55 -0
  164. package/node_modules/@aws-sdk/util-user-agent-node/package.json +2 -2
  165. package/node_modules/@smithy/config-resolver/package.json +2 -2
  166. package/node_modules/@smithy/core/dist-cjs/index.js +2 -1
  167. package/node_modules/@smithy/core/dist-cjs/submodules/cbor/index.js +32 -14
  168. package/node_modules/@smithy/core/dist-cjs/submodules/endpoints/index.js +2 -2
  169. package/node_modules/@smithy/core/dist-cjs/submodules/event-streams/index.js +16 -8
  170. package/node_modules/@smithy/core/dist-cjs/submodules/protocols/index.js +17 -10
  171. package/node_modules/@smithy/core/dist-cjs/submodules/schema/index.js +6 -1
  172. package/node_modules/@smithy/core/dist-cjs/submodules/serde/index.js +6 -3
  173. package/node_modules/@smithy/core/dist-cjs/util-identity-and-auth/DefaultIdentityProviderConfig.js +2 -1
  174. package/node_modules/@smithy/core/dist-es/submodules/cbor/CborCodec.js +23 -11
  175. package/node_modules/@smithy/core/dist-es/submodules/cbor/parseCborBody.js +9 -3
  176. package/node_modules/@smithy/core/dist-es/submodules/endpoints/toEndpointV1.js +2 -2
  177. package/node_modules/@smithy/core/dist-es/submodules/event-streams/EventStreamSerde.js +16 -8
  178. package/node_modules/@smithy/core/dist-es/submodules/protocols/HttpBindingProtocol.js +9 -4
  179. package/node_modules/@smithy/core/dist-es/submodules/protocols/HttpProtocol.js +8 -6
  180. package/node_modules/@smithy/core/dist-es/submodules/schema/TypeRegistry.js +6 -1
  181. package/node_modules/@smithy/core/dist-es/submodules/serde/parse-utils.js +6 -3
  182. package/node_modules/@smithy/core/dist-es/util-identity-and-auth/DefaultIdentityProviderConfig.js +2 -1
  183. package/node_modules/@smithy/core/dist-types/submodules/schema/TypeRegistry.d.ts +1 -1
  184. package/node_modules/@smithy/core/package.json +2 -2
  185. package/node_modules/@smithy/middleware-endpoint/package.json +3 -3
  186. package/node_modules/@smithy/middleware-retry/package.json +5 -5
  187. package/node_modules/@smithy/middleware-serde/package.json +2 -2
  188. package/node_modules/@smithy/node-http-handler/dist-cjs/index.js +188 -93
  189. package/node_modules/@smithy/node-http-handler/dist-es/http2/ClientHttp2SessionRef.js +45 -0
  190. package/node_modules/@smithy/node-http-handler/dist-es/node-http2-connection-manager.js +71 -35
  191. package/node_modules/@smithy/node-http-handler/dist-es/node-http2-connection-pool.js +32 -18
  192. package/node_modules/@smithy/node-http-handler/dist-es/node-http2-handler.js +41 -40
  193. package/node_modules/@smithy/node-http-handler/dist-types/http2/ClientHttp2SessionRef.d.ts +42 -0
  194. package/node_modules/@smithy/node-http-handler/dist-types/node-http2-connection-manager.d.ts +34 -14
  195. package/node_modules/@smithy/node-http-handler/dist-types/node-http2-connection-pool.d.ts +32 -8
  196. package/node_modules/@smithy/node-http-handler/dist-types/node-http2-handler.d.ts +0 -5
  197. package/node_modules/@smithy/node-http-handler/package.json +1 -1
  198. package/node_modules/@smithy/service-error-classification/dist-cjs/index.js +5 -0
  199. package/node_modules/@smithy/service-error-classification/dist-es/index.js +4 -0
  200. package/node_modules/@smithy/service-error-classification/dist-types/index.d.ts +6 -0
  201. package/node_modules/@smithy/service-error-classification/package.json +1 -1
  202. package/node_modules/@smithy/smithy-client/package.json +4 -4
  203. package/node_modules/@smithy/util-defaults-mode-browser/package.json +2 -2
  204. package/node_modules/@smithy/util-defaults-mode-node/package.json +3 -3
  205. package/node_modules/@smithy/util-endpoints/dist-cjs/index.js +65 -53
  206. package/node_modules/@smithy/util-endpoints/dist-es/utils/evaluateCondition.js +9 -7
  207. package/node_modules/@smithy/util-endpoints/dist-es/utils/evaluateConditions.js +12 -8
  208. package/node_modules/@smithy/util-endpoints/dist-es/utils/evaluateEndpointRule.js +14 -13
  209. package/node_modules/@smithy/util-endpoints/dist-es/utils/evaluateErrorRule.js +7 -4
  210. package/node_modules/@smithy/util-endpoints/dist-es/utils/evaluateExpression.js +10 -8
  211. package/node_modules/@smithy/util-endpoints/dist-es/utils/evaluateRules.js +4 -4
  212. package/node_modules/@smithy/util-endpoints/dist-es/utils/getEndpointHeaders.js +5 -5
  213. package/node_modules/@smithy/util-endpoints/dist-es/utils/getEndpointProperties.js +4 -4
  214. package/node_modules/@smithy/util-endpoints/dist-types/types/shared.d.ts +3 -3
  215. package/node_modules/@smithy/util-endpoints/dist-types/utils/endpointFunctions.d.ts +2 -15
  216. package/node_modules/@smithy/util-endpoints/dist-types/utils/evaluateCondition.d.ts +6 -3
  217. package/node_modules/@smithy/util-endpoints/dist-types/utils/evaluateConditions.d.ts +3 -3
  218. package/node_modules/@smithy/util-endpoints/dist-types/utils/getEndpointHeaders.d.ts +1 -1
  219. package/node_modules/@smithy/util-endpoints/dist-types/utils/getEndpointProperties.d.ts +2 -2
  220. package/node_modules/@smithy/util-endpoints/dist-types/utils/getReferenceValue.d.ts +2 -2
  221. package/node_modules/@smithy/util-endpoints/package.json +1 -1
  222. package/node_modules/@smithy/util-retry/package.json +2 -2
  223. package/node_modules/@smithy/util-stream/package.json +2 -2
  224. package/package.json +3 -3
  225. package/node_modules/@aws-sdk/client-cloudformation/dist-cjs/endpoint/ruleset.js +0 -7
  226. package/node_modules/@aws-sdk/client-cloudformation/dist-es/endpoint/ruleset.js +0 -4
  227. package/node_modules/@aws-sdk/client-cloudformation/dist-types/endpoint/ruleset.d.ts +0 -2
  228. package/node_modules/@aws-sdk/client-cloudformation/dist-types/ts3.4/endpoint/ruleset.d.ts +0 -2
  229. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/cognito-identity/endpoint/ruleset.js +0 -146
  230. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/signin/endpoint/ruleset.js +0 -133
  231. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso/endpoint/ruleset.js +0 -106
  232. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/endpoint/ruleset.js +0 -106
  233. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/endpoint/ruleset.js +0 -145
  234. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/cognito-identity/endpoint/ruleset.js +0 -143
  235. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/signin/endpoint/ruleset.js +0 -130
  236. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso/endpoint/ruleset.js +0 -103
  237. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/endpoint/ruleset.js +0 -103
  238. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/endpoint/ruleset.js +0 -142
  239. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/cognito-identity/endpoint/ruleset.d.ts +0 -2
  240. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/signin/endpoint/ruleset.d.ts +0 -2
  241. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso/endpoint/ruleset.d.ts +0 -2
  242. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/endpoint/ruleset.d.ts +0 -2
  243. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/endpoint/ruleset.d.ts +0 -2
  244. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/cognito-identity/endpoint/ruleset.d.ts +0 -2
  245. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/signin/endpoint/ruleset.d.ts +0 -2
  246. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso/endpoint/ruleset.d.ts +0 -2
  247. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso-oidc/endpoint/ruleset.d.ts +0 -2
  248. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/endpoint/ruleset.d.ts +0 -2
@@ -1,24 +1,27 @@
1
1
  import http2 from "node:http2";
2
+ import { ClientHttp2SessionRef } from "./http2/ClientHttp2SessionRef";
2
3
  import { NodeHttp2ConnectionPool } from "./node-http2-connection-pool";
3
4
  export class NodeHttp2ConnectionManager {
5
+ config;
6
+ connectionPools = new Map();
4
7
  constructor(config) {
5
8
  this.config = config;
6
9
  if (this.config.maxConcurrency && this.config.maxConcurrency <= 0) {
7
10
  throw new RangeError("maxConcurrency must be greater than zero.");
8
11
  }
9
12
  }
10
- config;
11
- sessionCache = new Map();
12
13
  lease(requestContext, connectionConfiguration) {
13
14
  const url = this.getUrlString(requestContext);
14
- const existingPool = this.sessionCache.get(url);
15
- if (existingPool) {
16
- const existingSession = existingPool.poll();
17
- if (existingSession && !this.config.disableConcurrency && !connectionConfiguration.isEventStream) {
18
- return existingSession;
15
+ const pool = this.getPool(url);
16
+ if (!this.config.disableConcurrency && !connectionConfiguration.isEventStream) {
17
+ const available = pool.poll();
18
+ if (available) {
19
+ available.retain();
20
+ return available;
19
21
  }
20
22
  }
21
- const session = http2.connect(url);
23
+ const ref = new ClientHttp2SessionRef(http2.connect(url));
24
+ const session = ref.deref();
22
25
  if (this.config.maxConcurrency) {
23
26
  session.settings({ maxConcurrentStreams: this.config.maxConcurrency }, (err) => {
24
27
  if (err) {
@@ -29,47 +32,48 @@ export class NodeHttp2ConnectionManager {
29
32
  }
30
33
  });
31
34
  }
32
- session.unref();
33
35
  const destroySessionCb = () => {
34
36
  session.destroy();
35
- this.deleteSession(url, session);
37
+ this.removeFromPool(url, ref);
36
38
  };
37
39
  session.on("goaway", destroySessionCb);
38
40
  session.on("error", destroySessionCb);
39
41
  session.on("frameError", destroySessionCb);
40
- session.on("close", () => this.deleteSession(url, session));
42
+ session.on("close", () => this.removeFromPool(url, ref));
41
43
  if (connectionConfiguration.requestTimeout) {
42
44
  session.setTimeout(connectionConfiguration.requestTimeout, destroySessionCb);
43
45
  }
44
- const connectionPool = this.sessionCache.get(url) || new NodeHttp2ConnectionPool();
45
- connectionPool.offerLast(session);
46
- this.sessionCache.set(url, connectionPool);
47
- return session;
46
+ pool.offerLast(ref);
47
+ ref.retain();
48
+ return ref;
48
49
  }
49
- deleteSession(authority, session) {
50
- const existingConnectionPool = this.sessionCache.get(authority);
51
- if (!existingConnectionPool) {
52
- return;
53
- }
54
- if (!existingConnectionPool.contains(session)) {
55
- return;
56
- }
57
- existingConnectionPool.remove(session);
58
- this.sessionCache.set(authority, existingConnectionPool);
50
+ release(_requestContext, ref) {
51
+ ref.free();
59
52
  }
60
- release(requestContext, session) {
61
- const cacheKey = this.getUrlString(requestContext);
62
- this.sessionCache.get(cacheKey)?.offerLast(session);
53
+ createIsolatedSession(requestContext, connectionConfiguration) {
54
+ const url = this.getUrlString(requestContext);
55
+ const ref = new ClientHttp2SessionRef(http2.connect(url));
56
+ const session = ref.deref();
57
+ session.settings({ maxConcurrentStreams: 1 });
58
+ const destroySession = () => {
59
+ session.destroy();
60
+ };
61
+ session.on("goaway", destroySession);
62
+ session.on("error", destroySession);
63
+ session.on("frameError", destroySession);
64
+ session.on("close", destroySession);
65
+ if (connectionConfiguration.requestTimeout) {
66
+ session.setTimeout(connectionConfiguration.requestTimeout, destroySession);
67
+ }
68
+ ref.retain();
69
+ return ref;
63
70
  }
64
71
  destroy() {
65
- for (const [key, connectionPool] of this.sessionCache) {
66
- for (const session of connectionPool) {
67
- if (!session.destroyed) {
68
- session.destroy();
69
- }
70
- connectionPool.remove(session);
72
+ for (const [url, connectionPool] of this.connectionPools) {
73
+ for (const session of [...connectionPool]) {
74
+ session.destroy();
71
75
  }
72
- this.sessionCache.delete(key);
76
+ this.connectionPools.delete(url);
73
77
  }
74
78
  }
75
79
  setMaxConcurrentStreams(maxConcurrentStreams) {
@@ -77,10 +81,42 @@ export class NodeHttp2ConnectionManager {
77
81
  throw new RangeError("maxConcurrentStreams must be greater than zero.");
78
82
  }
79
83
  this.config.maxConcurrency = maxConcurrentStreams;
84
+ for (const pool of this.connectionPools.values()) {
85
+ pool.setMaxConcurrency(maxConcurrentStreams);
86
+ }
80
87
  }
81
88
  setDisableConcurrentStreams(disableConcurrentStreams) {
82
89
  this.config.disableConcurrency = disableConcurrentStreams;
83
90
  }
91
+ debug() {
92
+ const pools = {};
93
+ for (const [url, pool] of this.connectionPools) {
94
+ const sessions = [];
95
+ for (const ref of pool) {
96
+ sessions.push({
97
+ id: ref.id,
98
+ active: ref.useCount(),
99
+ maxConcurrent: ref.max,
100
+ totalRequests: ref.total,
101
+ });
102
+ }
103
+ pools[url] = { sessions };
104
+ }
105
+ return pools;
106
+ }
107
+ removeFromPool(authority, ref) {
108
+ this.connectionPools.get(authority)?.remove(ref);
109
+ }
110
+ getPool(url) {
111
+ if (!this.connectionPools.has(url)) {
112
+ const pool = new NodeHttp2ConnectionPool();
113
+ if (this.config.maxConcurrency) {
114
+ pool.setMaxConcurrency(this.config.maxConcurrency);
115
+ }
116
+ this.connectionPools.set(url, pool);
117
+ }
118
+ return this.connectionPools.get(url);
119
+ }
84
120
  getUrlString(request) {
85
121
  return request.destination.toString();
86
122
  }
@@ -1,32 +1,46 @@
1
+ import { ClientHttp2SessionRef } from "./http2/ClientHttp2SessionRef";
1
2
  export class NodeHttp2ConnectionPool {
2
3
  sessions = [];
4
+ maxConcurrency = 0;
3
5
  constructor(sessions) {
4
- this.sessions = sessions ?? [];
6
+ this.sessions = (sessions ?? []).map((session) => new ClientHttp2SessionRef(session));
5
7
  }
6
8
  poll() {
7
- if (this.sessions.length > 0) {
8
- return this.sessions.shift();
9
+ let cleanup = false;
10
+ for (const session of this.sessions) {
11
+ if (session.deref().destroyed) {
12
+ cleanup = true;
13
+ continue;
14
+ }
15
+ if (!this.maxConcurrency || session.useCount() < this.maxConcurrency) {
16
+ return session;
17
+ }
18
+ }
19
+ if (cleanup) {
20
+ for (const session of this.sessions) {
21
+ if (session.deref().destroyed) {
22
+ this.remove(session);
23
+ }
24
+ }
9
25
  }
10
26
  }
11
- offerLast(session) {
12
- this.sessions.push(session);
13
- }
14
- contains(session) {
15
- return this.sessions.includes(session);
27
+ offerLast(ref) {
28
+ this.sessions.push(ref);
16
29
  }
17
- remove(session) {
18
- this.sessions = this.sessions.filter((s) => s !== session);
30
+ remove(ref) {
31
+ const ix = this.sessions.indexOf(ref);
32
+ if (ix > -1) {
33
+ this.sessions.splice(ix, 1);
34
+ }
19
35
  }
20
36
  [Symbol.iterator]() {
21
37
  return this.sessions[Symbol.iterator]();
22
38
  }
23
- destroy(connection) {
24
- for (const session of this.sessions) {
25
- if (session === connection) {
26
- if (!session.destroyed) {
27
- session.destroy();
28
- }
29
- }
30
- }
39
+ setMaxConcurrency(maxConcurrency) {
40
+ this.maxConcurrency = maxConcurrency;
41
+ }
42
+ destroy(ref) {
43
+ this.remove(ref);
44
+ ref.destroy();
31
45
  }
32
46
  }
@@ -36,12 +36,14 @@ export class NodeHttp2Handler {
36
36
  async handle(request, { abortSignal, requestTimeout, isEventStream } = {}) {
37
37
  if (!this.config) {
38
38
  this.config = await this.configProvider;
39
- this.connectionManager.setDisableConcurrentStreams(this.config.disableConcurrentStreams ?? false);
40
- if (this.config.maxConcurrentStreams) {
41
- this.connectionManager.setMaxConcurrentStreams(this.config.maxConcurrentStreams);
39
+ const { disableConcurrentStreams, maxConcurrentStreams } = this.config;
40
+ this.connectionManager.setDisableConcurrentStreams(disableConcurrentStreams ?? false);
41
+ if (maxConcurrentStreams) {
42
+ this.connectionManager.setMaxConcurrentStreams(maxConcurrentStreams);
42
43
  }
43
44
  }
44
45
  const { requestTimeout: configRequestTimeout, disableConcurrentStreams } = this.config;
46
+ const useIsolatedSession = disableConcurrentStreams || isEventStream;
45
47
  const effectiveRequestTimeout = requestTimeout ?? configRequestTimeout;
46
48
  return new Promise((_resolve, _reject) => {
47
49
  let fulfilled = false;
@@ -69,13 +71,17 @@ export class NodeHttp2Handler {
69
71
  }
70
72
  const authority = `${protocol}//${auth}${hostname}${port ? `:${port}` : ""}`;
71
73
  const requestContext = { destination: new URL(authority) };
72
- const session = this.connectionManager.lease(requestContext, {
74
+ const connectConfig = {
73
75
  requestTimeout: this.config?.sessionTimeout,
74
76
  isEventStream,
75
- });
77
+ };
78
+ const ref = useIsolatedSession
79
+ ? this.connectionManager.createIsolatedSession(requestContext, connectConfig)
80
+ : this.connectionManager.lease(requestContext, connectConfig);
81
+ const session = ref.deref();
76
82
  const rejectWithDestroy = (err) => {
77
- if (disableConcurrentStreams) {
78
- this.destroySession(session);
83
+ if (useIsolatedSession) {
84
+ ref.destroy();
79
85
  }
80
86
  fulfilled = true;
81
87
  reject(err);
@@ -88,28 +94,14 @@ export class NodeHttp2Handler {
88
94
  if (request.fragment) {
89
95
  path += `#${request.fragment}`;
90
96
  }
91
- const req = session.request({
97
+ const clientHttp2Stream = session.request({
92
98
  ...request.headers,
93
99
  [constants.HTTP2_HEADER_PATH]: path,
94
100
  [constants.HTTP2_HEADER_METHOD]: method,
95
101
  });
96
- session.ref();
97
- req.on("response", (headers) => {
98
- const httpResponse = new HttpResponse({
99
- statusCode: headers[":status"] ?? -1,
100
- headers: getTransformedHeaders(headers),
101
- body: req,
102
- });
103
- fulfilled = true;
104
- resolve({ response: httpResponse });
105
- if (disableConcurrentStreams) {
106
- session.close();
107
- this.connectionManager.deleteSession(authority, session);
108
- }
109
- });
110
102
  if (effectiveRequestTimeout) {
111
- req.setTimeout(effectiveRequestTimeout, () => {
112
- req.close();
103
+ clientHttp2Stream.setTimeout(effectiveRequestTimeout, () => {
104
+ clientHttp2Stream.close();
113
105
  const timeoutError = new Error(`Stream timed out because of no activity for ${effectiveRequestTimeout} ms`);
114
106
  timeoutError.name = "TimeoutError";
115
107
  rejectWithDestroy(timeoutError);
@@ -117,36 +109,50 @@ export class NodeHttp2Handler {
117
109
  }
118
110
  if (abortSignal) {
119
111
  const onAbort = () => {
120
- req.close();
112
+ clientHttp2Stream.close();
121
113
  const abortError = buildAbortError(abortSignal);
122
114
  rejectWithDestroy(abortError);
123
115
  };
124
116
  if (typeof abortSignal.addEventListener === "function") {
125
117
  const signal = abortSignal;
126
118
  signal.addEventListener("abort", onAbort, { once: true });
127
- req.once("close", () => signal.removeEventListener("abort", onAbort));
119
+ clientHttp2Stream.once("close", () => signal.removeEventListener("abort", onAbort));
128
120
  }
129
121
  else {
130
122
  abortSignal.onabort = onAbort;
131
123
  }
132
124
  }
133
- req.on("frameError", (type, code, id) => {
125
+ clientHttp2Stream.on("frameError", (type, code, id) => {
134
126
  rejectWithDestroy(new Error(`Frame type id ${type} in stream id ${id} has failed with code ${code}.`));
135
127
  });
136
- req.on("error", rejectWithDestroy);
137
- req.on("aborted", () => {
138
- rejectWithDestroy(new Error(`HTTP/2 stream is abnormally aborted in mid-communication with result code ${req.rstCode}.`));
128
+ clientHttp2Stream.on("error", rejectWithDestroy);
129
+ clientHttp2Stream.on("aborted", () => {
130
+ rejectWithDestroy(new Error(`HTTP/2 stream is abnormally aborted in mid-communication with result code ${clientHttp2Stream.rstCode}.`));
131
+ });
132
+ clientHttp2Stream.on("response", (headers) => {
133
+ const httpResponse = new HttpResponse({
134
+ statusCode: headers[":status"] ?? -1,
135
+ headers: getTransformedHeaders(headers),
136
+ body: clientHttp2Stream,
137
+ });
138
+ fulfilled = true;
139
+ resolve({ response: httpResponse });
140
+ if (useIsolatedSession) {
141
+ session.close();
142
+ }
139
143
  });
140
- req.on("close", () => {
141
- session.unref();
142
- if (disableConcurrentStreams) {
143
- session.destroy();
144
+ clientHttp2Stream.on("close", () => {
145
+ if (useIsolatedSession) {
146
+ ref.destroy();
147
+ }
148
+ else {
149
+ this.connectionManager.release(requestContext, ref);
144
150
  }
145
151
  if (!fulfilled) {
146
152
  rejectWithDestroy(new Error("Unexpected error: http2 request did not get a response"));
147
153
  }
148
154
  });
149
- writeRequestBodyPromise = writeRequestBody(req, request, effectiveRequestTimeout);
155
+ writeRequestBodyPromise = writeRequestBody(clientHttp2Stream, request, effectiveRequestTimeout);
150
156
  });
151
157
  }
152
158
  updateHttpClientConfig(key, value) {
@@ -161,9 +167,4 @@ export class NodeHttp2Handler {
161
167
  httpHandlerConfigs() {
162
168
  return this.config ?? {};
163
169
  }
164
- destroySession(session) {
165
- if (!session.destroyed) {
166
- session.destroy();
167
- }
168
- }
169
170
  }
@@ -0,0 +1,42 @@
1
+ import type { ClientHttp2Session } from "node:http2";
2
+ /**
3
+ * Shared access ref counter for ClientHttp2Session, where owners are
4
+ * in-flight requests.
5
+ *
6
+ * @internal
7
+ * @since 4.6.0
8
+ */
9
+ export declare class ClientHttp2SessionRef {
10
+ readonly id: number;
11
+ /**
12
+ * Total calls to retain for this session.
13
+ */
14
+ total: number;
15
+ /**
16
+ * Max ref count observed.
17
+ */
18
+ max: number;
19
+ private readonly session;
20
+ private refs;
21
+ constructor(session: ClientHttp2Session);
22
+ /**
23
+ * Signal that the session is entering a request span and has an additional owning request.
24
+ * This must be called when beginning a request using the session.
25
+ */
26
+ retain(): void;
27
+ /**
28
+ * Release reference to session, to be called when it exits request span, indicating one fewer owning request.
29
+ * When reaching zero, the session is unref'd.
30
+ * This must be called when concluding a request using the session.
31
+ */
32
+ free(): void;
33
+ /**
34
+ * Access the session (don't call ref/unref on it).
35
+ */
36
+ deref(): ClientHttp2Session;
37
+ destroy(): void;
38
+ /**
39
+ * @returns the current number of active references (in-flight requests).
40
+ */
41
+ useCount(): number;
42
+ }
@@ -1,24 +1,44 @@
1
- import type { RequestContext } from "@smithy/types";
2
- import type { ConnectConfiguration } from "@smithy/types";
3
- import type { ConnectionManager, ConnectionManagerConfiguration } from "@smithy/types";
4
- import type { ClientHttp2Session } from "node:http2";
1
+ import type { ConnectConfiguration, ConnectionManager, ConnectionManagerConfiguration, RequestContext } from "@smithy/types";
2
+ import { ClientHttp2SessionRef } from "./http2/ClientHttp2SessionRef";
5
3
  /**
6
- * @public
4
+ * This class previously implemented the ConnectionManager<ClientHttp2Session> interface,
5
+ * but this class isn't exported from this package, except as a private property of NodeHttp2Handler.
6
+ *
7
+ * @since 4.6.0
8
+ * @internal
7
9
  */
8
- export declare class NodeHttp2ConnectionManager implements ConnectionManager<ClientHttp2Session> {
9
- constructor(config: ConnectionManagerConfiguration);
10
+ export declare class NodeHttp2ConnectionManager implements ConnectionManager<ClientHttp2SessionRef> {
10
11
  private config;
11
- private readonly sessionCache;
12
- lease(requestContext: RequestContext, connectionConfiguration: ConnectConfiguration): ClientHttp2Session;
12
+ private readonly connectionPools;
13
+ constructor(config: ConnectionManagerConfiguration);
14
+ /**
15
+ * Acquire a session for making a request.
16
+ */
17
+ lease(requestContext: RequestContext, connectionConfiguration: ConnectConfiguration): ClientHttp2SessionRef;
18
+ /**
19
+ * Signal that a request using this session has completed.
20
+ *
21
+ * The session remains in its pool for reuse.
22
+ * This method is not called for isolated sessions.
23
+ */
24
+ release(_requestContext: RequestContext, ref: ClientHttp2SessionRef): void;
13
25
  /**
14
- * Delete a session from the connection pool.
15
- * @param authority The authority of the session to delete.
16
- * @param session The session to delete.
26
+ * Create an isolated session that isn't part of the connection pools.
27
+ * For use in event-streams or when concurrency is turned off.
17
28
  */
18
- deleteSession(authority: string, session: ClientHttp2Session): void;
19
- release(requestContext: RequestContext, session: ClientHttp2Session): void;
29
+ createIsolatedSession(requestContext: RequestContext, connectionConfiguration: ConnectConfiguration): ClientHttp2SessionRef;
20
30
  destroy(): void;
21
31
  setMaxConcurrentStreams(maxConcurrentStreams: number): void;
22
32
  setDisableConcurrentStreams(disableConcurrentStreams: boolean): void;
33
+ /**
34
+ * @internal
35
+ * @returns a snapshot of the state of all connection pools and their sessions.
36
+ */
37
+ debug(): Record<string, any>;
38
+ /**
39
+ * Remove a session from the pools. Does not destroy it.
40
+ */
41
+ private removeFromPool;
42
+ private getPool;
23
43
  private getUrlString;
24
44
  }
@@ -1,12 +1,36 @@
1
1
  import type { ConnectionPool } from "@smithy/types";
2
2
  import type { ClientHttp2Session } from "node:http2";
3
- export declare class NodeHttp2ConnectionPool implements ConnectionPool<ClientHttp2Session> {
4
- private sessions;
3
+ import { ClientHttp2SessionRef } from "./http2/ClientHttp2SessionRef";
4
+ /**
5
+ * These are keyed by URL, therefore all sessions within this class' state
6
+ * are for the same URL.
7
+ *
8
+ * Sessions remain in the pool for their entire lifetime (until destroyed or
9
+ * removed). The pool tracks capacity via each session's ref count.
10
+ *
11
+ * Interface implementation changed from ConnectionPool<ClientHttp2Session>.
12
+ * @since 4.6.0
13
+ * @internal
14
+ */
15
+ export declare class NodeHttp2ConnectionPool implements ConnectionPool<ClientHttp2SessionRef> {
16
+ private readonly sessions;
17
+ private maxConcurrency;
5
18
  constructor(sessions?: ClientHttp2Session[]);
6
- poll(): ClientHttp2Session | void;
7
- offerLast(session: ClientHttp2Session): void;
8
- contains(session: ClientHttp2Session): boolean;
9
- remove(session: ClientHttp2Session): void;
10
- [Symbol.iterator](): ArrayIterator<ClientHttp2Session>;
11
- destroy(connection: ClientHttp2Session): void;
19
+ /**
20
+ * Find a session with available capacity (refs < maxConcurrency).
21
+ * Returns undefined if all sessions are at capacity or the pool is empty.
22
+ */
23
+ poll(): ClientHttp2SessionRef | undefined;
24
+ /**
25
+ * Add a session to the pool.
26
+ */
27
+ offerLast(ref: ClientHttp2SessionRef): void;
28
+ remove(ref: ClientHttp2SessionRef): void;
29
+ [Symbol.iterator](): ArrayIterator<ClientHttp2SessionRef>;
30
+ setMaxConcurrency(maxConcurrency: number): void;
31
+ /**
32
+ * This is unused, but part of the interface.
33
+ * @deprecated
34
+ */
35
+ destroy(ref: ClientHttp2SessionRef): void;
12
36
  }
@@ -67,10 +67,5 @@ export declare class NodeHttp2Handler implements HttpHandler<NodeHttp2HandlerOpt
67
67
  }>;
68
68
  updateHttpClientConfig(key: keyof NodeHttp2HandlerOptions, value: NodeHttp2HandlerOptions[typeof key]): void;
69
69
  httpHandlerConfigs(): NodeHttp2HandlerOptions;
70
- /**
71
- * Destroys a session.
72
- * @param session - the session to destroy.
73
- */
74
- private destroySession;
75
70
  }
76
71
  export {};
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@smithy/node-http-handler",
3
- "version": "4.5.3",
3
+ "version": "4.6.0",
4
4
  "description": "Provides a way to make requests",
5
5
  "scripts": {
6
6
  "build": "concurrently 'yarn:build:types' 'yarn:build:es:cjs'",
@@ -56,6 +56,7 @@ const isTransientError = (error, depth = 0) => isRetryableByTrait(error) ||
56
56
  NODEJS_NETWORK_ERROR_CODES.includes(error?.code || "") ||
57
57
  TRANSIENT_ERROR_STATUS_CODES.includes(error.$metadata?.httpStatusCode || 0) ||
58
58
  isBrowserNetworkError(error) ||
59
+ isNodeJsHttp2TransientError(error) ||
59
60
  (error.cause !== undefined && depth <= 10 && isTransientError(error.cause, depth + 1));
60
61
  const isServerError = (error) => {
61
62
  if (error.$metadata?.httpStatusCode !== undefined) {
@@ -67,10 +68,14 @@ const isServerError = (error) => {
67
68
  }
68
69
  return false;
69
70
  };
71
+ function isNodeJsHttp2TransientError(error) {
72
+ return error.code === "ERR_HTTP2_STREAM_ERROR" && error.message.includes("NGHTTP2_REFUSED_STREAM");
73
+ }
70
74
 
71
75
  exports.isBrowserNetworkError = isBrowserNetworkError;
72
76
  exports.isClockSkewCorrectedError = isClockSkewCorrectedError;
73
77
  exports.isClockSkewError = isClockSkewError;
78
+ exports.isNodeJsHttp2TransientError = isNodeJsHttp2TransientError;
74
79
  exports.isRetryableByTrait = isRetryableByTrait;
75
80
  exports.isServerError = isServerError;
76
81
  exports.isThrottlingError = isThrottlingError;
@@ -26,6 +26,7 @@ export const isTransientError = (error, depth = 0) => isRetryableByTrait(error)
26
26
  NODEJS_NETWORK_ERROR_CODES.includes(error?.code || "") ||
27
27
  TRANSIENT_ERROR_STATUS_CODES.includes(error.$metadata?.httpStatusCode || 0) ||
28
28
  isBrowserNetworkError(error) ||
29
+ isNodeJsHttp2TransientError(error) ||
29
30
  (error.cause !== undefined && depth <= 10 && isTransientError(error.cause, depth + 1));
30
31
  export const isServerError = (error) => {
31
32
  if (error.$metadata?.httpStatusCode !== undefined) {
@@ -37,3 +38,6 @@ export const isServerError = (error) => {
37
38
  }
38
39
  return false;
39
40
  };
41
+ export function isNodeJsHttp2TransientError(error) {
42
+ return error.code === "ERR_HTTP2_STREAM_ERROR" && error.message.includes("NGHTTP2_REFUSED_STREAM");
43
+ }
@@ -22,3 +22,9 @@ export declare const isThrottlingError: (error: SdkError) => boolean;
22
22
  */
23
23
  export declare const isTransientError: (error: SdkError, depth?: number) => boolean;
24
24
  export declare const isServerError: (error: SdkError) => boolean;
25
+ /**
26
+ * @internal
27
+ */
28
+ export declare function isNodeJsHttp2TransientError(error: Error & {
29
+ code?: string;
30
+ }): boolean;
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@smithy/service-error-classification",
3
- "version": "4.2.14",
3
+ "version": "4.3.0",
4
4
  "scripts": {
5
5
  "build": "concurrently 'yarn:build:types' 'yarn:build:es:cjs'",
6
6
  "build:es:cjs": "yarn g:tsc -p tsconfig.es.json && node ../../scripts/inline service-error-classification",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@smithy/smithy-client",
3
- "version": "4.12.11",
3
+ "version": "4.12.12",
4
4
  "scripts": {
5
5
  "build": "concurrently 'yarn:build:types' 'yarn:build:es:cjs'",
6
6
  "build:es:cjs": "yarn g:tsc -p tsconfig.es.json && node ../../scripts/inline smithy-client",
@@ -26,12 +26,12 @@
26
26
  "license": "Apache-2.0",
27
27
  "sideEffects": false,
28
28
  "dependencies": {
29
- "@smithy/core": "^3.23.15",
30
- "@smithy/middleware-endpoint": "^4.4.30",
29
+ "@smithy/core": "^3.23.16",
30
+ "@smithy/middleware-endpoint": "^4.4.31",
31
31
  "@smithy/middleware-stack": "^4.2.14",
32
32
  "@smithy/protocol-http": "^5.3.14",
33
33
  "@smithy/types": "^4.14.1",
34
- "@smithy/util-stream": "^4.5.23",
34
+ "@smithy/util-stream": "^4.5.24",
35
35
  "tslib": "^2.6.2"
36
36
  },
37
37
  "engines": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@smithy/util-defaults-mode-browser",
3
- "version": "4.3.47",
3
+ "version": "4.3.48",
4
4
  "scripts": {
5
5
  "build": "concurrently 'yarn:build:types' 'yarn:build:es:cjs'",
6
6
  "build:es:cjs": "yarn g:tsc -p tsconfig.es.json && node ../../scripts/inline util-defaults-mode-browser",
@@ -24,7 +24,7 @@
24
24
  "sideEffects": false,
25
25
  "dependencies": {
26
26
  "@smithy/property-provider": "^4.2.14",
27
- "@smithy/smithy-client": "^4.12.11",
27
+ "@smithy/smithy-client": "^4.12.12",
28
28
  "@smithy/types": "^4.14.1",
29
29
  "tslib": "^2.6.2"
30
30
  },
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@smithy/util-defaults-mode-node",
3
- "version": "4.2.52",
3
+ "version": "4.2.53",
4
4
  "scripts": {
5
5
  "build": "concurrently 'yarn:build:types' 'yarn:build:es:cjs'",
6
6
  "build:es:cjs": "yarn g:tsc -p tsconfig.es.json && node ../../scripts/inline util-defaults-mode-node",
@@ -23,11 +23,11 @@
23
23
  "license": "Apache-2.0",
24
24
  "sideEffects": false,
25
25
  "dependencies": {
26
- "@smithy/config-resolver": "^4.4.16",
26
+ "@smithy/config-resolver": "^4.4.17",
27
27
  "@smithy/credential-provider-imds": "^4.2.14",
28
28
  "@smithy/node-config-provider": "^4.3.14",
29
29
  "@smithy/property-provider": "^4.2.14",
30
- "@smithy/smithy-client": "^4.12.11",
30
+ "@smithy/smithy-client": "^4.12.12",
31
31
  "@smithy/types": "^4.14.1",
32
32
  "tslib": "^2.6.2"
33
33
  },