@cdklabs/cdk-ecs-codedeploy 0.0.437 → 0.0.439

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 (399) hide show
  1. package/.jsii +3 -3
  2. package/lib/api-canary/index.js +1 -1
  3. package/lib/ecs-appspec/index.js +1 -1
  4. package/lib/ecs-deployment/index.js +1 -1
  5. package/lib/ecs-patterns/application-load-balanced-codedeployed-fargate-service.js +1 -1
  6. package/node_modules/@aws-sdk/client-codedeploy/dist-cjs/endpoint/bdd.js +49 -0
  7. package/node_modules/@aws-sdk/client-codedeploy/dist-cjs/endpoint/endpointResolver.js +2 -2
  8. package/node_modules/@aws-sdk/client-codedeploy/dist-es/endpoint/bdd.js +46 -0
  9. package/node_modules/@aws-sdk/client-codedeploy/dist-es/endpoint/endpointResolver.js +3 -3
  10. package/node_modules/@aws-sdk/client-codedeploy/dist-types/endpoint/bdd.d.ts +2 -0
  11. package/node_modules/@aws-sdk/client-codedeploy/dist-types/ts3.4/endpoint/bdd.d.ts +2 -0
  12. package/node_modules/@aws-sdk/client-codedeploy/package.json +34 -34
  13. package/node_modules/@aws-sdk/core/dist-cjs/index.js +72 -61
  14. package/node_modules/@aws-sdk/core/dist-cjs/submodules/client/index.js +3 -0
  15. package/node_modules/@aws-sdk/core/dist-cjs/submodules/protocols/index.js +70 -61
  16. package/node_modules/@aws-sdk/core/dist-es/submodules/client/setFeature.js +2 -0
  17. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/ProtocolLib.js +11 -10
  18. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/UnionSerde.js +4 -1
  19. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/AwsJsonRpcProtocol.js +4 -5
  20. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/AwsRestJsonProtocol.js +2 -1
  21. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/JsonShapeDeserializer.js +6 -4
  22. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/JsonShapeSerializer.js +15 -10
  23. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/experimental/SinglePassJsonShapeSerializer.js +2 -1
  24. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/parseJsonBody.js +17 -17
  25. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/query/AwsQueryProtocol.js +3 -8
  26. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/query/QueryShapeSerializer.js +2 -1
  27. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/xml/AwsRestXmlProtocol.js +2 -2
  28. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/xml/XmlShapeSerializer.js +4 -2
  29. package/node_modules/@aws-sdk/core/dist-types/submodules/client/setFeature.d.ts +1 -1
  30. package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/JsonShapeSerializer.d.ts +2 -2
  31. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/JsonShapeSerializer.d.ts +1 -1
  32. package/node_modules/@aws-sdk/core/package.json +14 -12
  33. package/node_modules/@aws-sdk/credential-provider-env/package.json +5 -5
  34. package/node_modules/@aws-sdk/credential-provider-http/package.json +10 -10
  35. package/node_modules/@aws-sdk/credential-provider-ini/package.json +14 -14
  36. package/node_modules/@aws-sdk/credential-provider-login/package.json +8 -8
  37. package/node_modules/@aws-sdk/credential-provider-node/package.json +12 -12
  38. package/node_modules/@aws-sdk/credential-provider-process/package.json +6 -6
  39. package/node_modules/@aws-sdk/credential-provider-sso/package.json +8 -8
  40. package/node_modules/@aws-sdk/credential-provider-web-identity/package.json +7 -7
  41. package/node_modules/@aws-sdk/middleware-host-header/package.json +4 -4
  42. package/node_modules/@aws-sdk/middleware-logger/package.json +3 -3
  43. package/node_modules/@aws-sdk/middleware-recursion-detection/package.json +4 -4
  44. package/node_modules/@aws-sdk/middleware-sdk-s3/LICENSE +201 -0
  45. package/node_modules/@aws-sdk/middleware-sdk-s3/README.md +4 -0
  46. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-cjs/index.js +581 -0
  47. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-cjs/toStream.browser.js +11 -0
  48. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-cjs/toStream.js +7 -0
  49. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/bucket-endpoint-middleware.js +36 -0
  50. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/check-content-length-header.js +32 -0
  51. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/index.js +9 -0
  52. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/protocol/S3RestXmlProtocol.js +25 -0
  53. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/region-redirect-endpoint-middleware.js +41 -0
  54. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/region-redirect-middleware.js +42 -0
  55. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/s3-expires-middleware.js +33 -0
  56. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/s3-express/classes/S3ExpressIdentityCache.js +39 -0
  57. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/s3-express/classes/S3ExpressIdentityCacheEntry.js +14 -0
  58. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/s3-express/classes/S3ExpressIdentityProviderImpl.js +49 -0
  59. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/s3-express/classes/SignatureV4S3Express.js +41 -0
  60. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/s3-express/constants.js +13 -0
  61. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/s3-express/functions/s3ExpressHttpSigningMiddleware.js +38 -0
  62. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/s3-express/functions/s3ExpressMiddleware.js +41 -0
  63. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/s3-express/functions/signS3Express.js +7 -0
  64. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/s3-express/index.js +7 -0
  65. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/s3-express/interfaces/S3ExpressIdentity.js +1 -0
  66. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/s3-express/interfaces/S3ExpressIdentityProvider.js +1 -0
  67. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/s3Configuration.js +17 -0
  68. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/throw-200-exceptions.js +51 -0
  69. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/toStream.browser.js +8 -0
  70. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/toStream.js +4 -0
  71. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-es/validate-bucket-name.js +25 -0
  72. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-types/bucket-endpoint-middleware.d.ts +13 -0
  73. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-types/check-content-length-header.d.ts +16 -0
  74. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-types/index.d.ts +9 -0
  75. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-types/protocol/S3RestXmlProtocol.d.ts +20 -0
  76. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-types/region-redirect-endpoint-middleware.d.ts +10 -0
  77. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-types/region-redirect-middleware.d.ts +20 -0
  78. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-types/s3-expires-middleware.d.ts +26 -0
  79. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-types/s3-express/classes/S3ExpressIdentityCache.d.ts +16 -0
  80. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-types/s3-express/classes/S3ExpressIdentityCacheEntry.d.ts +16 -0
  81. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-types/s3-express/classes/S3ExpressIdentityProviderImpl.d.ts +32 -0
  82. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-types/s3-express/classes/SignatureV4S3Express.d.ts +17 -0
  83. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-types/s3-express/constants.d.ts +37 -0
  84. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-types/s3-express/functions/s3ExpressHttpSigningMiddleware.d.ts +27 -0
  85. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-types/s3-express/functions/s3ExpressMiddleware.d.ts +32 -0
  86. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-types/s3-express/functions/signS3Express.d.ts +9 -0
  87. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-types/s3-express/index.d.ts +9 -0
  88. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-types/s3-express/interfaces/S3ExpressIdentity.d.ts +6 -0
  89. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-types/s3-express/interfaces/S3ExpressIdentityProvider.d.ts +12 -0
  90. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-types/s3Configuration.d.ts +79 -0
  91. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-types/throw-200-exceptions.d.ts +21 -0
  92. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-types/toStream.browser.d.ts +4 -0
  93. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-types/toStream.d.ts +5 -0
  94. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-types/ts3.4/bucket-endpoint-middleware.d.ts +9 -0
  95. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-types/ts3.4/check-content-length-header.d.ts +13 -0
  96. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-types/ts3.4/index.d.ts +9 -0
  97. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-types/ts3.4/protocol/S3RestXmlProtocol.d.ts +15 -0
  98. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-types/ts3.4/region-redirect-endpoint-middleware.d.ts +6 -0
  99. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-types/ts3.4/region-redirect-middleware.d.ts +17 -0
  100. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-types/ts3.4/s3-expires-middleware.d.ts +14 -0
  101. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-types/ts3.4/s3-express/classes/S3ExpressIdentityCache.d.ts +14 -0
  102. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-types/ts3.4/s3-express/classes/S3ExpressIdentityCacheEntry.d.ts +12 -0
  103. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-types/ts3.4/s3-express/classes/S3ExpressIdentityProviderImpl.d.ts +31 -0
  104. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-types/ts3.4/s3-express/classes/SignatureV4S3Express.d.ts +19 -0
  105. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-types/ts3.4/s3-express/constants.d.ts +11 -0
  106. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-types/ts3.4/s3-express/functions/s3ExpressHttpSigningMiddleware.d.ts +40 -0
  107. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-types/ts3.4/s3-express/functions/s3ExpressMiddleware.d.ts +27 -0
  108. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-types/ts3.4/s3-express/functions/signS3Express.d.ts +21 -0
  109. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-types/ts3.4/s3-express/index.d.ts +17 -0
  110. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-types/ts3.4/s3-express/interfaces/S3ExpressIdentity.d.ts +2 -0
  111. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-types/ts3.4/s3-express/interfaces/S3ExpressIdentityProvider.d.ts +8 -0
  112. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-types/ts3.4/s3Configuration.d.ts +33 -0
  113. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-types/ts3.4/throw-200-exceptions.d.ts +19 -0
  114. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-types/ts3.4/toStream.browser.d.ts +1 -0
  115. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-types/ts3.4/toStream.d.ts +2 -0
  116. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-types/ts3.4/validate-bucket-name.d.ts +13 -0
  117. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-types/validate-bucket-name.d.ts +14 -0
  118. package/node_modules/@aws-sdk/middleware-sdk-s3/package.json +79 -0
  119. package/node_modules/@aws-sdk/middleware-user-agent/package.json +8 -8
  120. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/cognito-identity/endpoint/bdd.js +100 -0
  121. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/cognito-identity/endpoint/endpointResolver.js +2 -2
  122. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/signin/endpoint/bdd.js +90 -0
  123. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/signin/endpoint/endpointResolver.js +2 -2
  124. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso/endpoint/bdd.js +80 -0
  125. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso/endpoint/endpointResolver.js +2 -2
  126. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/endpoint/bdd.js +80 -0
  127. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/endpoint/endpointResolver.js +2 -2
  128. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/STSClient.js +1 -0
  129. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/auth/httpAuthSchemeProvider.js +87 -5
  130. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/endpoint/bdd.js +150 -0
  131. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/endpoint/endpointResolver.js +2 -2
  132. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/models/errors.js +1 -0
  133. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/runtimeConfig.js +6 -0
  134. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/runtimeConfig.shared.js +7 -0
  135. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/cognito-identity/endpoint/bdd.js +97 -0
  136. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/cognito-identity/endpoint/endpointResolver.js +3 -3
  137. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/signin/endpoint/bdd.js +87 -0
  138. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/signin/endpoint/endpointResolver.js +3 -3
  139. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso/endpoint/bdd.js +77 -0
  140. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso/endpoint/endpointResolver.js +3 -3
  141. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/endpoint/bdd.js +77 -0
  142. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/endpoint/endpointResolver.js +3 -3
  143. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/STSClient.js +1 -0
  144. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/auth/httpAuthSchemeProvider.js +88 -4
  145. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/endpoint/bdd.js +147 -0
  146. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/endpoint/endpointResolver.js +3 -3
  147. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/models/errors.js +1 -0
  148. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/runtimeConfig.js +7 -1
  149. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/runtimeConfig.shared.js +8 -1
  150. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/cognito-identity/endpoint/bdd.d.ts +2 -0
  151. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/signin/endpoint/bdd.d.ts +2 -0
  152. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso/endpoint/bdd.d.ts +2 -0
  153. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/endpoint/bdd.d.ts +2 -0
  154. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/auth/httpAuthSchemeProvider.d.ts +15 -7
  155. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/endpoint/bdd.d.ts +2 -0
  156. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/models/errors.d.ts +1 -0
  157. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/runtimeConfig.browser.d.ts +3 -2
  158. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/runtimeConfig.d.ts +10 -4
  159. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/runtimeConfig.native.d.ts +3 -2
  160. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/runtimeConfig.shared.d.ts +3 -1
  161. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/cognito-identity/endpoint/bdd.d.ts +2 -0
  162. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/signin/endpoint/bdd.d.ts +2 -0
  163. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso/endpoint/bdd.d.ts +2 -0
  164. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso-oidc/endpoint/bdd.d.ts +2 -0
  165. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/auth/httpAuthSchemeProvider.d.ts +20 -9
  166. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/endpoint/bdd.d.ts +2 -0
  167. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/models/errors.d.ts +1 -0
  168. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/runtimeConfig.browser.d.ts +11 -5
  169. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/runtimeConfig.d.ts +35 -16
  170. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/runtimeConfig.native.d.ts +11 -5
  171. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/runtimeConfig.shared.d.ts +8 -1
  172. package/node_modules/@aws-sdk/nested-clients/package.json +33 -32
  173. package/node_modules/@aws-sdk/region-config-resolver/package.json +5 -5
  174. package/node_modules/@aws-sdk/signature-v4-multi-region/LICENSE +201 -0
  175. package/node_modules/@aws-sdk/signature-v4-multi-region/README.md +32 -0
  176. package/node_modules/@aws-sdk/signature-v4-multi-region/dist-cjs/index.js +121 -0
  177. package/node_modules/@aws-sdk/signature-v4-multi-region/dist-es/SignatureV4MultiRegion.js +112 -0
  178. package/node_modules/@aws-sdk/signature-v4-multi-region/dist-es/index.js +2 -0
  179. package/node_modules/@aws-sdk/signature-v4-multi-region/dist-es/signature-v4-crt-container.js +3 -0
  180. package/node_modules/@aws-sdk/signature-v4-multi-region/dist-types/SignatureV4MultiRegion.d.ts +35 -0
  181. package/node_modules/@aws-sdk/signature-v4-multi-region/dist-types/index.d.ts +5 -0
  182. package/node_modules/@aws-sdk/signature-v4-multi-region/dist-types/signature-v4-crt-container.d.ts +28 -0
  183. package/node_modules/@aws-sdk/signature-v4-multi-region/dist-types/ts3.4/SignatureV4MultiRegion.d.ts +41 -0
  184. package/node_modules/@aws-sdk/signature-v4-multi-region/dist-types/ts3.4/index.d.ts +2 -0
  185. package/node_modules/@aws-sdk/signature-v4-multi-region/dist-types/ts3.4/signature-v4-crt-container.d.ts +20 -0
  186. package/node_modules/@aws-sdk/signature-v4-multi-region/package.json +61 -0
  187. package/node_modules/@aws-sdk/token-providers/package.json +7 -7
  188. package/node_modules/@aws-sdk/types/package.json +2 -2
  189. package/node_modules/@aws-sdk/util-arn-parser/LICENSE +201 -0
  190. package/node_modules/@aws-sdk/util-arn-parser/README.md +4 -0
  191. package/node_modules/@aws-sdk/util-arn-parser/dist-cjs/index.js +27 -0
  192. package/node_modules/@aws-sdk/util-arn-parser/dist-es/index.js +21 -0
  193. package/node_modules/@aws-sdk/util-arn-parser/dist-types/index.d.ts +32 -0
  194. package/node_modules/@aws-sdk/util-arn-parser/dist-types/ts3.4/index.d.ts +14 -0
  195. package/node_modules/@aws-sdk/util-arn-parser/package.json +55 -0
  196. package/node_modules/@aws-sdk/util-endpoints/package.json +5 -5
  197. package/node_modules/@aws-sdk/util-user-agent-browser/package.json +3 -3
  198. package/node_modules/@aws-sdk/util-user-agent-node/package.json +5 -5
  199. package/node_modules/@aws-sdk/xml-builder/dist-cjs/xml-parser.js +0 -2
  200. package/node_modules/@aws-sdk/xml-builder/dist-es/xml-parser.js +0 -2
  201. package/node_modules/@aws-sdk/xml-builder/package.json +3 -3
  202. package/node_modules/@nodable/entities/README.md +41 -0
  203. package/node_modules/@nodable/entities/package.json +54 -0
  204. package/node_modules/@nodable/entities/src/EntityDecoder.js +543 -0
  205. package/node_modules/@nodable/entities/src/EntityEncoder.js +194 -0
  206. package/node_modules/@nodable/entities/src/entities.js +1177 -0
  207. package/node_modules/@nodable/entities/src/entityTries.js +49 -0
  208. package/node_modules/@nodable/entities/src/index.d.ts +264 -0
  209. package/node_modules/@nodable/entities/src/index.js +29 -0
  210. package/node_modules/@smithy/config-resolver/package.json +5 -5
  211. package/node_modules/@smithy/core/dist-cjs/index.js +2 -1
  212. package/node_modules/@smithy/core/dist-cjs/submodules/cbor/index.js +32 -14
  213. package/node_modules/@smithy/core/dist-cjs/submodules/endpoints/index.js +2 -2
  214. package/node_modules/@smithy/core/dist-cjs/submodules/event-streams/index.js +16 -8
  215. package/node_modules/@smithy/core/dist-cjs/submodules/protocols/index.js +17 -10
  216. package/node_modules/@smithy/core/dist-cjs/submodules/schema/index.js +6 -1
  217. package/node_modules/@smithy/core/dist-cjs/submodules/serde/index.js +6 -3
  218. package/node_modules/@smithy/core/dist-cjs/util-identity-and-auth/DefaultIdentityProviderConfig.js +2 -1
  219. package/node_modules/@smithy/core/dist-es/submodules/cbor/CborCodec.js +23 -11
  220. package/node_modules/@smithy/core/dist-es/submodules/cbor/parseCborBody.js +9 -3
  221. package/node_modules/@smithy/core/dist-es/submodules/endpoints/toEndpointV1.js +2 -2
  222. package/node_modules/@smithy/core/dist-es/submodules/event-streams/EventStreamSerde.js +16 -8
  223. package/node_modules/@smithy/core/dist-es/submodules/protocols/HttpBindingProtocol.js +9 -4
  224. package/node_modules/@smithy/core/dist-es/submodules/protocols/HttpProtocol.js +8 -6
  225. package/node_modules/@smithy/core/dist-es/submodules/schema/TypeRegistry.js +6 -1
  226. package/node_modules/@smithy/core/dist-es/submodules/serde/parse-utils.js +6 -3
  227. package/node_modules/@smithy/core/dist-es/util-identity-and-auth/DefaultIdentityProviderConfig.js +2 -1
  228. package/node_modules/@smithy/core/dist-types/submodules/schema/TypeRegistry.d.ts +1 -1
  229. package/node_modules/@smithy/core/package.json +7 -7
  230. package/node_modules/@smithy/credential-provider-imds/package.json +5 -5
  231. package/node_modules/@smithy/fetch-http-handler/package.json +5 -5
  232. package/node_modules/@smithy/hash-node/package.json +2 -2
  233. package/node_modules/@smithy/invalid-dependency/package.json +2 -2
  234. package/node_modules/@smithy/middleware-content-length/package.json +3 -3
  235. package/node_modules/@smithy/middleware-endpoint/package.json +8 -8
  236. package/node_modules/@smithy/middleware-retry/package.json +9 -9
  237. package/node_modules/@smithy/middleware-serde/package.json +4 -4
  238. package/node_modules/@smithy/middleware-stack/package.json +2 -2
  239. package/node_modules/@smithy/node-config-provider/package.json +4 -4
  240. package/node_modules/@smithy/node-http-handler/dist-cjs/index.js +208 -102
  241. package/node_modules/@smithy/node-http-handler/dist-es/http2/ClientHttp2SessionRef.js +50 -0
  242. package/node_modules/@smithy/node-http-handler/dist-es/node-http2-connection-manager.js +83 -41
  243. package/node_modules/@smithy/node-http-handler/dist-es/node-http2-connection-pool.js +32 -18
  244. package/node_modules/@smithy/node-http-handler/dist-es/node-http2-handler.js +44 -43
  245. package/node_modules/@smithy/node-http-handler/dist-types/http2/ClientHttp2SessionRef.d.ts +46 -0
  246. package/node_modules/@smithy/node-http-handler/dist-types/node-http2-connection-manager.d.ts +32 -14
  247. package/node_modules/@smithy/node-http-handler/dist-types/node-http2-connection-pool.d.ts +32 -8
  248. package/node_modules/@smithy/node-http-handler/dist-types/node-http2-handler.d.ts +14 -6
  249. package/node_modules/@smithy/node-http-handler/package.json +5 -5
  250. package/node_modules/@smithy/property-provider/package.json +2 -2
  251. package/node_modules/@smithy/protocol-http/package.json +2 -2
  252. package/node_modules/@smithy/querystring-builder/package.json +2 -2
  253. package/node_modules/@smithy/querystring-parser/package.json +2 -2
  254. package/node_modules/@smithy/service-error-classification/dist-cjs/index.js +6 -0
  255. package/node_modules/@smithy/service-error-classification/dist-es/index.js +5 -0
  256. package/node_modules/@smithy/service-error-classification/dist-types/index.d.ts +6 -0
  257. package/node_modules/@smithy/service-error-classification/package.json +2 -2
  258. package/node_modules/@smithy/shared-ini-file-loader/package.json +2 -2
  259. package/node_modules/@smithy/signature-v4/dist-cjs/index.js +11 -5
  260. package/node_modules/@smithy/signature-v4/dist-es/SignatureV4.js +11 -5
  261. package/node_modules/@smithy/signature-v4/dist-types/SignatureV4.d.ts +3 -3
  262. package/node_modules/@smithy/signature-v4/package.json +4 -4
  263. package/node_modules/@smithy/smithy-client/dist-cjs/index.js +8 -1
  264. package/node_modules/@smithy/smithy-client/dist-es/command.js +8 -1
  265. package/node_modules/@smithy/smithy-client/package.json +7 -7
  266. package/node_modules/@smithy/types/dist-types/connection/config.d.ts +5 -0
  267. package/node_modules/@smithy/types/dist-types/signature.d.ts +20 -3
  268. package/node_modules/@smithy/types/package.json +1 -1
  269. package/node_modules/@smithy/url-parser/package.json +3 -3
  270. package/node_modules/@smithy/util-defaults-mode-browser/package.json +4 -4
  271. package/node_modules/@smithy/util-defaults-mode-node/package.json +7 -7
  272. package/node_modules/@smithy/util-endpoints/dist-cjs/index.js +79 -71
  273. package/node_modules/@smithy/util-endpoints/dist-es/decideEndpoint.js +4 -3
  274. package/node_modules/@smithy/util-endpoints/dist-es/lib/getAttr.js +2 -1
  275. package/node_modules/@smithy/util-endpoints/dist-es/resolveEndpoint.js +8 -13
  276. package/node_modules/@smithy/util-endpoints/dist-es/utils/evaluateCondition.js +9 -7
  277. package/node_modules/@smithy/util-endpoints/dist-es/utils/evaluateConditions.js +12 -8
  278. package/node_modules/@smithy/util-endpoints/dist-es/utils/evaluateEndpointRule.js +14 -13
  279. package/node_modules/@smithy/util-endpoints/dist-es/utils/evaluateErrorRule.js +7 -4
  280. package/node_modules/@smithy/util-endpoints/dist-es/utils/evaluateExpression.js +10 -8
  281. package/node_modules/@smithy/util-endpoints/dist-es/utils/evaluateRules.js +4 -4
  282. package/node_modules/@smithy/util-endpoints/dist-es/utils/getEndpointHeaders.js +5 -5
  283. package/node_modules/@smithy/util-endpoints/dist-es/utils/getEndpointProperties.js +4 -4
  284. package/node_modules/@smithy/util-endpoints/dist-types/bdd/BinaryDecisionDiagram.d.ts +2 -2
  285. package/node_modules/@smithy/util-endpoints/dist-types/types/shared.d.ts +3 -3
  286. package/node_modules/@smithy/util-endpoints/dist-types/utils/endpointFunctions.d.ts +2 -15
  287. package/node_modules/@smithy/util-endpoints/dist-types/utils/evaluateCondition.d.ts +6 -3
  288. package/node_modules/@smithy/util-endpoints/dist-types/utils/evaluateConditions.d.ts +3 -3
  289. package/node_modules/@smithy/util-endpoints/dist-types/utils/getEndpointHeaders.d.ts +1 -1
  290. package/node_modules/@smithy/util-endpoints/dist-types/utils/getEndpointProperties.d.ts +2 -2
  291. package/node_modules/@smithy/util-endpoints/dist-types/utils/getReferenceValue.d.ts +2 -2
  292. package/node_modules/@smithy/util-endpoints/package.json +3 -3
  293. package/node_modules/@smithy/util-middleware/package.json +2 -2
  294. package/node_modules/@smithy/util-retry/dist-cjs/index.js +20 -10
  295. package/node_modules/@smithy/util-retry/dist-es/StandardRetryStrategy.js +20 -10
  296. package/node_modules/@smithy/util-retry/dist-types/StandardRetryStrategy.d.ts +12 -4
  297. package/node_modules/@smithy/util-retry/package.json +3 -3
  298. package/node_modules/@smithy/util-stream/package.json +4 -4
  299. package/node_modules/@smithy/util-waiter/dist-cjs/index.js +59 -34
  300. package/node_modules/@smithy/util-waiter/dist-es/poller.js +61 -34
  301. package/node_modules/@smithy/util-waiter/dist-types/createWaiter.d.ts +1 -1
  302. package/node_modules/@smithy/util-waiter/dist-types/poller.d.ts +2 -1
  303. package/node_modules/@smithy/util-waiter/dist-types/waiter.d.ts +13 -13
  304. package/node_modules/@smithy/util-waiter/package.json +3 -3
  305. package/node_modules/fast-xml-builder/package.json +1 -1
  306. package/node_modules/fast-xml-builder/src/fxb.js +6 -2
  307. package/node_modules/fast-xml-builder/src/orderedJs2Xml.js +16 -2
  308. package/node_modules/{@aws-sdk/xml-builder/node_modules/fast-xml-parser → fast-xml-parser}/CHANGELOG.md +53 -0
  309. package/node_modules/{@aws-sdk/xml-builder/node_modules/fast-xml-parser → fast-xml-parser}/README.md +8 -28
  310. package/node_modules/fast-xml-parser/lib/fxbuilder.min.js +2 -0
  311. package/node_modules/fast-xml-parser/lib/fxbuilder.min.js.map +1 -0
  312. package/node_modules/fast-xml-parser/lib/fxp.cjs +1 -0
  313. package/node_modules/{@aws-sdk/xml-builder/node_modules/fast-xml-parser → fast-xml-parser}/lib/fxp.d.cts +172 -6
  314. package/node_modules/fast-xml-parser/lib/fxp.min.js +2 -0
  315. package/node_modules/fast-xml-parser/lib/fxp.min.js.map +1 -0
  316. package/node_modules/fast-xml-parser/lib/fxparser.min.js +2 -0
  317. package/node_modules/fast-xml-parser/lib/fxparser.min.js.map +1 -0
  318. package/node_modules/{@aws-sdk/xml-builder/node_modules/fast-xml-parser → fast-xml-parser}/package.json +5 -4
  319. package/node_modules/{@aws-sdk/xml-builder/node_modules/fast-xml-parser → fast-xml-parser}/src/fxp.d.ts +162 -3
  320. package/node_modules/{@aws-sdk/xml-builder/node_modules/fast-xml-parser → fast-xml-parser}/src/xmlparser/DocTypeReader.js +2 -5
  321. package/node_modules/{@aws-sdk/xml-builder/node_modules/fast-xml-parser → fast-xml-parser}/src/xmlparser/OptionsBuilder.js +15 -11
  322. package/node_modules/{@aws-sdk/xml-builder/node_modules/fast-xml-parser → fast-xml-parser}/src/xmlparser/OrderedObjParser.js +168 -244
  323. package/node_modules/{@aws-sdk/xml-builder/node_modules/fast-xml-parser → fast-xml-parser}/src/xmlparser/XMLParser.js +1 -1
  324. package/package.json +5 -5
  325. package/node_modules/@aws-sdk/client-codedeploy/dist-cjs/endpoint/ruleset.js +0 -7
  326. package/node_modules/@aws-sdk/client-codedeploy/dist-es/endpoint/ruleset.js +0 -4
  327. package/node_modules/@aws-sdk/client-codedeploy/dist-types/endpoint/ruleset.d.ts +0 -2
  328. package/node_modules/@aws-sdk/client-codedeploy/dist-types/ts3.4/endpoint/ruleset.d.ts +0 -2
  329. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/cognito-identity/endpoint/ruleset.js +0 -146
  330. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/signin/endpoint/ruleset.js +0 -133
  331. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso/endpoint/ruleset.js +0 -106
  332. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/endpoint/ruleset.js +0 -106
  333. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/endpoint/ruleset.js +0 -145
  334. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/cognito-identity/endpoint/ruleset.js +0 -143
  335. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/signin/endpoint/ruleset.js +0 -130
  336. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso/endpoint/ruleset.js +0 -103
  337. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/endpoint/ruleset.js +0 -103
  338. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/endpoint/ruleset.js +0 -142
  339. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/cognito-identity/endpoint/ruleset.d.ts +0 -2
  340. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/signin/endpoint/ruleset.d.ts +0 -2
  341. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso/endpoint/ruleset.d.ts +0 -2
  342. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/endpoint/ruleset.d.ts +0 -2
  343. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/endpoint/ruleset.d.ts +0 -2
  344. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/cognito-identity/endpoint/ruleset.d.ts +0 -2
  345. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/signin/endpoint/ruleset.d.ts +0 -2
  346. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso/endpoint/ruleset.d.ts +0 -2
  347. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso-oidc/endpoint/ruleset.d.ts +0 -2
  348. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/endpoint/ruleset.d.ts +0 -2
  349. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/lib/fxbuilder.min.js +0 -2
  350. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/lib/fxbuilder.min.js.map +0 -1
  351. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/lib/fxp.cjs +0 -1
  352. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/lib/fxp.min.js +0 -2
  353. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/lib/fxp.min.js.map +0 -1
  354. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/lib/fxparser.min.js +0 -2
  355. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/lib/fxparser.min.js.map +0 -1
  356. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/lib/pem.d.cts +0 -148
  357. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/pem.d.ts +0 -135
  358. /package/node_modules/{@aws-sdk/xml-builder/node_modules/fast-xml-parser → fast-xml-parser}/LICENSE +0 -0
  359. /package/node_modules/{@aws-sdk/xml-builder/node_modules/fast-xml-parser → fast-xml-parser}/lib/fxvalidator.min.js +0 -0
  360. /package/node_modules/{@aws-sdk/xml-builder/node_modules/fast-xml-parser → fast-xml-parser}/lib/fxvalidator.min.js.map +0 -0
  361. /package/node_modules/{@aws-sdk/xml-builder/node_modules/fast-xml-parser → fast-xml-parser}/src/cli/cli.js +0 -0
  362. /package/node_modules/{@aws-sdk/xml-builder/node_modules/fast-xml-parser → fast-xml-parser}/src/cli/man.js +0 -0
  363. /package/node_modules/{@aws-sdk/xml-builder/node_modules/fast-xml-parser → fast-xml-parser}/src/cli/read.js +0 -0
  364. /package/node_modules/{@aws-sdk/xml-builder/node_modules/fast-xml-parser → fast-xml-parser}/src/fxp.js +0 -0
  365. /package/node_modules/{@aws-sdk/xml-builder/node_modules/fast-xml-parser → fast-xml-parser}/src/ignoreAttributes.js +0 -0
  366. /package/node_modules/{@aws-sdk/xml-builder/node_modules/fast-xml-parser → fast-xml-parser}/src/util.js +0 -0
  367. /package/node_modules/{@aws-sdk/xml-builder/node_modules/fast-xml-parser → fast-xml-parser}/src/v6/CharsSymbol.js +0 -0
  368. /package/node_modules/{@aws-sdk/xml-builder/node_modules/fast-xml-parser → fast-xml-parser}/src/v6/EntitiesParser.js +0 -0
  369. /package/node_modules/{@aws-sdk/xml-builder/node_modules/fast-xml-parser → fast-xml-parser}/src/v6/OptionsBuilder.js +0 -0
  370. /package/node_modules/{@aws-sdk/xml-builder/node_modules/fast-xml-parser → fast-xml-parser}/src/v6/OutputBuilders/BaseOutputBuilder.js +0 -0
  371. /package/node_modules/{@aws-sdk/xml-builder/node_modules/fast-xml-parser → fast-xml-parser}/src/v6/OutputBuilders/JsArrBuilder.js +0 -0
  372. /package/node_modules/{@aws-sdk/xml-builder/node_modules/fast-xml-parser → fast-xml-parser}/src/v6/OutputBuilders/JsMinArrBuilder.js +0 -0
  373. /package/node_modules/{@aws-sdk/xml-builder/node_modules/fast-xml-parser → fast-xml-parser}/src/v6/OutputBuilders/JsObjBuilder.js +0 -0
  374. /package/node_modules/{@aws-sdk/xml-builder/node_modules/fast-xml-parser → fast-xml-parser}/src/v6/OutputBuilders/ParserOptionsBuilder.js +0 -0
  375. /package/node_modules/{@aws-sdk/xml-builder/node_modules/fast-xml-parser → fast-xml-parser}/src/v6/Report.js +0 -0
  376. /package/node_modules/{@aws-sdk/xml-builder/node_modules/fast-xml-parser → fast-xml-parser}/src/v6/TagPath.js +0 -0
  377. /package/node_modules/{@aws-sdk/xml-builder/node_modules/fast-xml-parser → fast-xml-parser}/src/v6/TagPathMatcher.js +0 -0
  378. /package/node_modules/{@aws-sdk/xml-builder/node_modules/fast-xml-parser → fast-xml-parser}/src/v6/XMLParser.js +0 -0
  379. /package/node_modules/{@aws-sdk/xml-builder/node_modules/fast-xml-parser → fast-xml-parser}/src/v6/Xml2JsParser.js +0 -0
  380. /package/node_modules/{@aws-sdk/xml-builder/node_modules/fast-xml-parser → fast-xml-parser}/src/v6/XmlPartReader.js +0 -0
  381. /package/node_modules/{@aws-sdk/xml-builder/node_modules/fast-xml-parser → fast-xml-parser}/src/v6/XmlSpecialTagsReader.js +0 -0
  382. /package/node_modules/{@aws-sdk/xml-builder/node_modules/fast-xml-parser → fast-xml-parser}/src/v6/inputSource/BufferSource.js +0 -0
  383. /package/node_modules/{@aws-sdk/xml-builder/node_modules/fast-xml-parser → fast-xml-parser}/src/v6/inputSource/StringSource.js +0 -0
  384. /package/node_modules/{@aws-sdk/xml-builder/node_modules/fast-xml-parser → fast-xml-parser}/src/v6/valueParsers/EntitiesParser.js +0 -0
  385. /package/node_modules/{@aws-sdk/xml-builder/node_modules/fast-xml-parser → fast-xml-parser}/src/v6/valueParsers/booleanParser.js +0 -0
  386. /package/node_modules/{@aws-sdk/xml-builder/node_modules/fast-xml-parser → fast-xml-parser}/src/v6/valueParsers/booleanParserExt.js +0 -0
  387. /package/node_modules/{@aws-sdk/xml-builder/node_modules/fast-xml-parser → fast-xml-parser}/src/v6/valueParsers/currency.js +0 -0
  388. /package/node_modules/{@aws-sdk/xml-builder/node_modules/fast-xml-parser → fast-xml-parser}/src/v6/valueParsers/join.js +0 -0
  389. /package/node_modules/{@aws-sdk/xml-builder/node_modules/fast-xml-parser → fast-xml-parser}/src/v6/valueParsers/number.js +0 -0
  390. /package/node_modules/{@aws-sdk/xml-builder/node_modules/fast-xml-parser → fast-xml-parser}/src/v6/valueParsers/trim.js +0 -0
  391. /package/node_modules/{@aws-sdk/xml-builder/node_modules/fast-xml-parser → fast-xml-parser}/src/validator.js +0 -0
  392. /package/node_modules/{@aws-sdk/xml-builder/node_modules/fast-xml-parser → fast-xml-parser}/src/xmlbuilder/json2xml.js +0 -0
  393. /package/node_modules/{@aws-sdk/xml-builder/node_modules/fast-xml-parser → fast-xml-parser}/src/xmlparser/node2json.js +0 -0
  394. /package/node_modules/{@aws-sdk/xml-builder/node_modules/fast-xml-parser → fast-xml-parser}/src/xmlparser/xmlNode.js +0 -0
  395. /package/node_modules/{@aws-sdk/xml-builder/node_modules/strnum → strnum}/CHANGELOG.md +0 -0
  396. /package/node_modules/{@aws-sdk/xml-builder/node_modules/strnum → strnum}/LICENSE +0 -0
  397. /package/node_modules/{@aws-sdk/xml-builder/node_modules/strnum → strnum}/README.md +0 -0
  398. /package/node_modules/{@aws-sdk/xml-builder/node_modules/strnum → strnum}/package.json +0 -0
  399. /package/node_modules/{@aws-sdk/xml-builder/node_modules/strnum → strnum}/strnum.js +0 -0
@@ -425,58 +425,124 @@ or increase socketAcquisitionWarningTimeout=(millis) in the NodeHttpHandler conf
425
425
  }
426
426
  }
427
427
 
428
+ const ids = new Uint16Array(1);
429
+ class ClientHttp2SessionRef {
430
+ id = ids[0]++;
431
+ total = 0;
432
+ max = 0;
433
+ session;
434
+ refs = 0;
435
+ constructor(session) {
436
+ session.unref();
437
+ this.session = session;
438
+ }
439
+ retain() {
440
+ if (this.session.destroyed) {
441
+ throw new Error("@smithy/node-http-handler - cannot acquire reference to destroyed session.");
442
+ }
443
+ this.refs += 1;
444
+ this.total += 1;
445
+ this.max = Math.max(this.refs, this.max);
446
+ this.session.ref();
447
+ }
448
+ free() {
449
+ if (this.session.destroyed) {
450
+ return;
451
+ }
452
+ this.refs -= 1;
453
+ if (this.refs === 0) {
454
+ this.session.unref();
455
+ }
456
+ if (this.refs < 0) {
457
+ throw new Error("@smithy/node-http-handler - ClientHttp2Session refcount at zero, cannot decrement.");
458
+ }
459
+ }
460
+ deref() {
461
+ return this.session;
462
+ }
463
+ close() {
464
+ if (!this.session.closed) {
465
+ this.session.close();
466
+ }
467
+ }
468
+ destroy() {
469
+ this.refs = 0;
470
+ if (!this.session.destroyed) {
471
+ this.session.destroy();
472
+ }
473
+ }
474
+ useCount() {
475
+ return this.refs;
476
+ }
477
+ }
478
+
428
479
  class NodeHttp2ConnectionPool {
429
480
  sessions = [];
481
+ maxConcurrency = 0;
430
482
  constructor(sessions) {
431
- this.sessions = sessions ?? [];
483
+ this.sessions = (sessions ?? []).map((session) => new ClientHttp2SessionRef(session));
432
484
  }
433
485
  poll() {
434
- if (this.sessions.length > 0) {
435
- return this.sessions.shift();
486
+ let cleanup = false;
487
+ for (const session of this.sessions) {
488
+ if (session.deref().destroyed) {
489
+ cleanup = true;
490
+ continue;
491
+ }
492
+ if (!this.maxConcurrency || session.useCount() < this.maxConcurrency) {
493
+ return session;
494
+ }
495
+ }
496
+ if (cleanup) {
497
+ for (const session of this.sessions) {
498
+ if (session.deref().destroyed) {
499
+ this.remove(session);
500
+ }
501
+ }
436
502
  }
437
503
  }
438
- offerLast(session) {
439
- this.sessions.push(session);
440
- }
441
- contains(session) {
442
- return this.sessions.includes(session);
504
+ offerLast(ref) {
505
+ this.sessions.push(ref);
443
506
  }
444
- remove(session) {
445
- this.sessions = this.sessions.filter((s) => s !== session);
507
+ remove(ref) {
508
+ const ix = this.sessions.indexOf(ref);
509
+ if (ix > -1) {
510
+ this.sessions.splice(ix, 1);
511
+ }
446
512
  }
447
513
  [Symbol.iterator]() {
448
514
  return this.sessions[Symbol.iterator]();
449
515
  }
450
- destroy(connection) {
451
- for (const session of this.sessions) {
452
- if (session === connection) {
453
- if (!session.destroyed) {
454
- session.destroy();
455
- }
456
- }
457
- }
516
+ setMaxConcurrency(maxConcurrency) {
517
+ this.maxConcurrency = maxConcurrency;
518
+ }
519
+ destroy(ref) {
520
+ this.remove(ref);
521
+ ref.destroy();
458
522
  }
459
523
  }
460
524
 
461
525
  class NodeHttp2ConnectionManager {
526
+ config;
527
+ connectionPools = new Map();
462
528
  constructor(config) {
463
529
  this.config = config;
464
530
  if (this.config.maxConcurrency && this.config.maxConcurrency <= 0) {
465
531
  throw new RangeError("maxConcurrency must be greater than zero.");
466
532
  }
467
533
  }
468
- config;
469
- sessionCache = new Map();
470
534
  lease(requestContext, connectionConfiguration) {
471
535
  const url = this.getUrlString(requestContext);
472
- const existingPool = this.sessionCache.get(url);
473
- if (existingPool) {
474
- const existingSession = existingPool.poll();
475
- if (existingSession && !this.config.disableConcurrency) {
476
- return existingSession;
536
+ const pool = this.getPool(url);
537
+ if (!this.config.disableConcurrency && !connectionConfiguration.isEventStream) {
538
+ const available = pool.poll();
539
+ if (available) {
540
+ available.retain();
541
+ return available;
477
542
  }
478
543
  }
479
- const session = http2.connect(url);
544
+ const ref = new ClientHttp2SessionRef(http2.connect(url));
545
+ const session = ref.deref();
480
546
  if (this.config.maxConcurrency) {
481
547
  session.settings({ maxConcurrentStreams: this.config.maxConcurrency }, (err) => {
482
548
  if (err) {
@@ -487,47 +553,49 @@ class NodeHttp2ConnectionManager {
487
553
  }
488
554
  });
489
555
  }
490
- session.unref();
491
- const destroySessionCb = () => {
492
- session.destroy();
493
- this.deleteSession(url, session);
556
+ const graceful = () => {
557
+ this.removeFromPoolAndClose(url, ref);
558
+ };
559
+ const ensureDestroyed = () => {
560
+ this.removeFromPoolAndCheckedDestroy(url, ref);
494
561
  };
495
- session.on("goaway", destroySessionCb);
496
- session.on("error", destroySessionCb);
497
- session.on("frameError", destroySessionCb);
498
- session.on("close", () => this.deleteSession(url, session));
562
+ session.on("goaway", graceful);
563
+ session.on("error", ensureDestroyed);
564
+ session.on("frameError", ensureDestroyed);
565
+ session.on("close", ensureDestroyed);
499
566
  if (connectionConfiguration.requestTimeout) {
500
- session.setTimeout(connectionConfiguration.requestTimeout, destroySessionCb);
567
+ session.setTimeout(connectionConfiguration.requestTimeout, ensureDestroyed);
501
568
  }
502
- const connectionPool = this.sessionCache.get(url) || new NodeHttp2ConnectionPool();
503
- connectionPool.offerLast(session);
504
- this.sessionCache.set(url, connectionPool);
505
- return session;
569
+ pool.offerLast(ref);
570
+ ref.retain();
571
+ return ref;
506
572
  }
507
- deleteSession(authority, session) {
508
- const existingConnectionPool = this.sessionCache.get(authority);
509
- if (!existingConnectionPool) {
510
- return;
511
- }
512
- if (!existingConnectionPool.contains(session)) {
513
- return;
514
- }
515
- existingConnectionPool.remove(session);
516
- this.sessionCache.set(authority, existingConnectionPool);
573
+ release(_requestContext, ref) {
574
+ ref.free();
517
575
  }
518
- release(requestContext, session) {
519
- const cacheKey = this.getUrlString(requestContext);
520
- this.sessionCache.get(cacheKey)?.offerLast(session);
576
+ createIsolatedSession(requestContext, connectionConfiguration) {
577
+ const url = this.getUrlString(requestContext);
578
+ const ref = new ClientHttp2SessionRef(http2.connect(url));
579
+ const session = ref.deref();
580
+ session.settings({ maxConcurrentStreams: 1 });
581
+ const ensureDestroyed = () => {
582
+ ref.destroy();
583
+ };
584
+ session.on("error", ensureDestroyed);
585
+ session.on("frameError", ensureDestroyed);
586
+ session.on("close", ensureDestroyed);
587
+ if (connectionConfiguration.requestTimeout) {
588
+ session.setTimeout(connectionConfiguration.requestTimeout, ensureDestroyed);
589
+ }
590
+ ref.retain();
591
+ return ref;
521
592
  }
522
593
  destroy() {
523
- for (const [key, connectionPool] of this.sessionCache) {
524
- for (const session of connectionPool) {
525
- if (!session.destroyed) {
526
- session.destroy();
527
- }
528
- connectionPool.remove(session);
594
+ for (const [url, connectionPool] of this.connectionPools) {
595
+ for (const session of [...connectionPool]) {
596
+ session.destroy();
529
597
  }
530
- this.sessionCache.delete(key);
598
+ this.connectionPools.delete(url);
531
599
  }
532
600
  }
533
601
  setMaxConcurrentStreams(maxConcurrentStreams) {
@@ -535,10 +603,47 @@ class NodeHttp2ConnectionManager {
535
603
  throw new RangeError("maxConcurrentStreams must be greater than zero.");
536
604
  }
537
605
  this.config.maxConcurrency = maxConcurrentStreams;
606
+ for (const pool of this.connectionPools.values()) {
607
+ pool.setMaxConcurrency(maxConcurrentStreams);
608
+ }
538
609
  }
539
610
  setDisableConcurrentStreams(disableConcurrentStreams) {
540
611
  this.config.disableConcurrency = disableConcurrentStreams;
541
612
  }
613
+ debug() {
614
+ const pools = {};
615
+ for (const [url, pool] of this.connectionPools) {
616
+ const sessions = [];
617
+ for (const ref of pool) {
618
+ sessions.push({
619
+ id: ref.id,
620
+ active: ref.useCount(),
621
+ maxConcurrent: ref.max,
622
+ totalRequests: ref.total,
623
+ });
624
+ }
625
+ pools[url] = { sessions };
626
+ }
627
+ return pools;
628
+ }
629
+ removeFromPoolAndClose(authority, ref) {
630
+ this.connectionPools.get(authority)?.remove(ref);
631
+ ref.close();
632
+ }
633
+ removeFromPoolAndCheckedDestroy(authority, ref) {
634
+ this.connectionPools.get(authority)?.remove(ref);
635
+ ref.destroy();
636
+ }
637
+ getPool(url) {
638
+ if (!this.connectionPools.has(url)) {
639
+ const pool = new NodeHttp2ConnectionPool();
640
+ if (this.config.maxConcurrency) {
641
+ pool.setMaxConcurrency(this.config.maxConcurrency);
642
+ }
643
+ this.connectionPools.set(url, pool);
644
+ }
645
+ return this.connectionPools.get(url);
646
+ }
542
647
  getUrlString(request) {
543
648
  return request.destination.toString();
544
649
  }
@@ -572,15 +677,17 @@ class NodeHttp2Handler {
572
677
  destroy() {
573
678
  this.connectionManager.destroy();
574
679
  }
575
- async handle(request, { abortSignal, requestTimeout } = {}) {
680
+ async handle(request, { abortSignal, requestTimeout, isEventStream } = {}) {
576
681
  if (!this.config) {
577
682
  this.config = await this.configProvider;
578
- this.connectionManager.setDisableConcurrentStreams(this.config.disableConcurrentStreams || false);
579
- if (this.config.maxConcurrentStreams) {
580
- this.connectionManager.setMaxConcurrentStreams(this.config.maxConcurrentStreams);
683
+ const { disableConcurrentStreams, maxConcurrentStreams } = this.config;
684
+ this.connectionManager.setDisableConcurrentStreams(disableConcurrentStreams ?? false);
685
+ if (maxConcurrentStreams) {
686
+ this.connectionManager.setMaxConcurrentStreams(maxConcurrentStreams);
581
687
  }
582
688
  }
583
689
  const { requestTimeout: configRequestTimeout, disableConcurrentStreams } = this.config;
690
+ const useIsolatedSession = disableConcurrentStreams || isEventStream;
584
691
  const effectiveRequestTimeout = requestTimeout ?? configRequestTimeout;
585
692
  return new Promise((_resolve, _reject) => {
586
693
  let fulfilled = false;
@@ -608,18 +715,22 @@ class NodeHttp2Handler {
608
715
  }
609
716
  const authority = `${protocol}//${auth}${hostname}${port ? `:${port}` : ""}`;
610
717
  const requestContext = { destination: new URL(authority) };
611
- const session = this.connectionManager.lease(requestContext, {
718
+ const connectConfig = {
612
719
  requestTimeout: this.config?.sessionTimeout,
613
- disableConcurrentStreams: disableConcurrentStreams || false,
614
- });
720
+ isEventStream,
721
+ };
722
+ const ref = useIsolatedSession
723
+ ? this.connectionManager.createIsolatedSession(requestContext, connectConfig)
724
+ : this.connectionManager.lease(requestContext, connectConfig);
725
+ const session = ref.deref();
615
726
  const rejectWithDestroy = (err) => {
616
- if (disableConcurrentStreams) {
617
- this.destroySession(session);
727
+ if (useIsolatedSession) {
728
+ ref.destroy();
618
729
  }
619
730
  fulfilled = true;
620
731
  reject(err);
621
732
  };
622
- const queryString = querystringBuilder.buildQueryString(query || {});
733
+ const queryString = querystringBuilder.buildQueryString(query ?? {});
623
734
  let path = request.path;
624
735
  if (queryString) {
625
736
  path += `?${queryString}`;
@@ -627,28 +738,14 @@ class NodeHttp2Handler {
627
738
  if (request.fragment) {
628
739
  path += `#${request.fragment}`;
629
740
  }
630
- const req = session.request({
741
+ const clientHttp2Stream = session.request({
631
742
  ...request.headers,
632
743
  [http2.constants.HTTP2_HEADER_PATH]: path,
633
744
  [http2.constants.HTTP2_HEADER_METHOD]: method,
634
745
  });
635
- session.ref();
636
- req.on("response", (headers) => {
637
- const httpResponse = new protocolHttp.HttpResponse({
638
- statusCode: headers[":status"] || -1,
639
- headers: getTransformedHeaders(headers),
640
- body: req,
641
- });
642
- fulfilled = true;
643
- resolve({ response: httpResponse });
644
- if (disableConcurrentStreams) {
645
- session.close();
646
- this.connectionManager.deleteSession(authority, session);
647
- }
648
- });
649
746
  if (effectiveRequestTimeout) {
650
- req.setTimeout(effectiveRequestTimeout, () => {
651
- req.close();
747
+ clientHttp2Stream.setTimeout(effectiveRequestTimeout, () => {
748
+ clientHttp2Stream.close();
652
749
  const timeoutError = new Error(`Stream timed out because of no activity for ${effectiveRequestTimeout} ms`);
653
750
  timeoutError.name = "TimeoutError";
654
751
  rejectWithDestroy(timeoutError);
@@ -656,36 +753,50 @@ class NodeHttp2Handler {
656
753
  }
657
754
  if (abortSignal) {
658
755
  const onAbort = () => {
659
- req.close();
756
+ clientHttp2Stream.close();
660
757
  const abortError = buildAbortError(abortSignal);
661
758
  rejectWithDestroy(abortError);
662
759
  };
663
760
  if (typeof abortSignal.addEventListener === "function") {
664
761
  const signal = abortSignal;
665
762
  signal.addEventListener("abort", onAbort, { once: true });
666
- req.once("close", () => signal.removeEventListener("abort", onAbort));
763
+ clientHttp2Stream.once("close", () => signal.removeEventListener("abort", onAbort));
667
764
  }
668
765
  else {
669
766
  abortSignal.onabort = onAbort;
670
767
  }
671
768
  }
672
- req.on("frameError", (type, code, id) => {
769
+ clientHttp2Stream.on("frameError", (type, code, id) => {
673
770
  rejectWithDestroy(new Error(`Frame type id ${type} in stream id ${id} has failed with code ${code}.`));
674
771
  });
675
- req.on("error", rejectWithDestroy);
676
- req.on("aborted", () => {
677
- rejectWithDestroy(new Error(`HTTP/2 stream is abnormally aborted in mid-communication with result code ${req.rstCode}.`));
772
+ clientHttp2Stream.on("error", rejectWithDestroy);
773
+ clientHttp2Stream.on("aborted", () => {
774
+ rejectWithDestroy(new Error(`HTTP/2 stream is abnormally aborted in mid-communication with result code ${clientHttp2Stream.rstCode}.`));
678
775
  });
679
- req.on("close", () => {
680
- session.unref();
681
- if (disableConcurrentStreams) {
682
- session.destroy();
776
+ clientHttp2Stream.on("response", (headers) => {
777
+ const httpResponse = new protocolHttp.HttpResponse({
778
+ statusCode: headers[":status"] ?? -1,
779
+ headers: getTransformedHeaders(headers),
780
+ body: clientHttp2Stream,
781
+ });
782
+ fulfilled = true;
783
+ resolve({ response: httpResponse });
784
+ if (useIsolatedSession) {
785
+ session.close();
786
+ }
787
+ });
788
+ clientHttp2Stream.on("close", () => {
789
+ if (useIsolatedSession) {
790
+ ref.destroy();
791
+ }
792
+ else {
793
+ this.connectionManager.release(requestContext, ref);
683
794
  }
684
795
  if (!fulfilled) {
685
796
  rejectWithDestroy(new Error("Unexpected error: http2 request did not get a response"));
686
797
  }
687
798
  });
688
- writeRequestBodyPromise = writeRequestBody(req, request, effectiveRequestTimeout);
799
+ writeRequestBodyPromise = writeRequestBody(clientHttp2Stream, request, effectiveRequestTimeout);
689
800
  });
690
801
  }
691
802
  updateHttpClientConfig(key, value) {
@@ -700,11 +811,6 @@ class NodeHttp2Handler {
700
811
  httpHandlerConfigs() {
701
812
  return this.config ?? {};
702
813
  }
703
- destroySession(session) {
704
- if (!session.destroyed) {
705
- session.destroy();
706
- }
707
- }
708
814
  }
709
815
 
710
816
  class Collector extends node_stream.Writable {
@@ -0,0 +1,50 @@
1
+ const ids = new Uint16Array(1);
2
+ export class ClientHttp2SessionRef {
3
+ id = ids[0]++;
4
+ total = 0;
5
+ max = 0;
6
+ session;
7
+ refs = 0;
8
+ constructor(session) {
9
+ session.unref();
10
+ this.session = session;
11
+ }
12
+ retain() {
13
+ if (this.session.destroyed) {
14
+ throw new Error("@smithy/node-http-handler - cannot acquire reference to destroyed session.");
15
+ }
16
+ this.refs += 1;
17
+ this.total += 1;
18
+ this.max = Math.max(this.refs, this.max);
19
+ this.session.ref();
20
+ }
21
+ free() {
22
+ if (this.session.destroyed) {
23
+ return;
24
+ }
25
+ this.refs -= 1;
26
+ if (this.refs === 0) {
27
+ this.session.unref();
28
+ }
29
+ if (this.refs < 0) {
30
+ throw new Error("@smithy/node-http-handler - ClientHttp2Session refcount at zero, cannot decrement.");
31
+ }
32
+ }
33
+ deref() {
34
+ return this.session;
35
+ }
36
+ close() {
37
+ if (!this.session.closed) {
38
+ this.session.close();
39
+ }
40
+ }
41
+ destroy() {
42
+ this.refs = 0;
43
+ if (!this.session.destroyed) {
44
+ this.session.destroy();
45
+ }
46
+ }
47
+ useCount() {
48
+ return this.refs;
49
+ }
50
+ }
@@ -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) {
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,49 @@ export class NodeHttp2ConnectionManager {
29
32
  }
30
33
  });
31
34
  }
32
- session.unref();
33
- const destroySessionCb = () => {
34
- session.destroy();
35
- this.deleteSession(url, session);
35
+ const graceful = () => {
36
+ this.removeFromPoolAndClose(url, ref);
37
+ };
38
+ const ensureDestroyed = () => {
39
+ this.removeFromPoolAndCheckedDestroy(url, ref);
36
40
  };
37
- session.on("goaway", destroySessionCb);
38
- session.on("error", destroySessionCb);
39
- session.on("frameError", destroySessionCb);
40
- session.on("close", () => this.deleteSession(url, session));
41
+ session.on("goaway", graceful);
42
+ session.on("error", ensureDestroyed);
43
+ session.on("frameError", ensureDestroyed);
44
+ session.on("close", ensureDestroyed);
41
45
  if (connectionConfiguration.requestTimeout) {
42
- session.setTimeout(connectionConfiguration.requestTimeout, destroySessionCb);
46
+ session.setTimeout(connectionConfiguration.requestTimeout, ensureDestroyed);
43
47
  }
44
- const connectionPool = this.sessionCache.get(url) || new NodeHttp2ConnectionPool();
45
- connectionPool.offerLast(session);
46
- this.sessionCache.set(url, connectionPool);
47
- return session;
48
+ pool.offerLast(ref);
49
+ ref.retain();
50
+ return ref;
48
51
  }
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);
52
+ release(_requestContext, ref) {
53
+ ref.free();
59
54
  }
60
- release(requestContext, session) {
61
- const cacheKey = this.getUrlString(requestContext);
62
- this.sessionCache.get(cacheKey)?.offerLast(session);
55
+ createIsolatedSession(requestContext, connectionConfiguration) {
56
+ const url = this.getUrlString(requestContext);
57
+ const ref = new ClientHttp2SessionRef(http2.connect(url));
58
+ const session = ref.deref();
59
+ session.settings({ maxConcurrentStreams: 1 });
60
+ const ensureDestroyed = () => {
61
+ ref.destroy();
62
+ };
63
+ session.on("error", ensureDestroyed);
64
+ session.on("frameError", ensureDestroyed);
65
+ session.on("close", ensureDestroyed);
66
+ if (connectionConfiguration.requestTimeout) {
67
+ session.setTimeout(connectionConfiguration.requestTimeout, ensureDestroyed);
68
+ }
69
+ ref.retain();
70
+ return ref;
63
71
  }
64
72
  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);
73
+ for (const [url, connectionPool] of this.connectionPools) {
74
+ for (const session of [...connectionPool]) {
75
+ session.destroy();
71
76
  }
72
- this.sessionCache.delete(key);
77
+ this.connectionPools.delete(url);
73
78
  }
74
79
  }
75
80
  setMaxConcurrentStreams(maxConcurrentStreams) {
@@ -77,10 +82,47 @@ export class NodeHttp2ConnectionManager {
77
82
  throw new RangeError("maxConcurrentStreams must be greater than zero.");
78
83
  }
79
84
  this.config.maxConcurrency = maxConcurrentStreams;
85
+ for (const pool of this.connectionPools.values()) {
86
+ pool.setMaxConcurrency(maxConcurrentStreams);
87
+ }
80
88
  }
81
89
  setDisableConcurrentStreams(disableConcurrentStreams) {
82
90
  this.config.disableConcurrency = disableConcurrentStreams;
83
91
  }
92
+ debug() {
93
+ const pools = {};
94
+ for (const [url, pool] of this.connectionPools) {
95
+ const sessions = [];
96
+ for (const ref of pool) {
97
+ sessions.push({
98
+ id: ref.id,
99
+ active: ref.useCount(),
100
+ maxConcurrent: ref.max,
101
+ totalRequests: ref.total,
102
+ });
103
+ }
104
+ pools[url] = { sessions };
105
+ }
106
+ return pools;
107
+ }
108
+ removeFromPoolAndClose(authority, ref) {
109
+ this.connectionPools.get(authority)?.remove(ref);
110
+ ref.close();
111
+ }
112
+ removeFromPoolAndCheckedDestroy(authority, ref) {
113
+ this.connectionPools.get(authority)?.remove(ref);
114
+ ref.destroy();
115
+ }
116
+ getPool(url) {
117
+ if (!this.connectionPools.has(url)) {
118
+ const pool = new NodeHttp2ConnectionPool();
119
+ if (this.config.maxConcurrency) {
120
+ pool.setMaxConcurrency(this.config.maxConcurrency);
121
+ }
122
+ this.connectionPools.set(url, pool);
123
+ }
124
+ return this.connectionPools.get(url);
125
+ }
84
126
  getUrlString(request) {
85
127
  return request.destination.toString();
86
128
  }