@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
@@ -9,19 +9,20 @@ export const evaluateEndpointRule = (endpointRule, options) => {
9
9
  if (!result) {
10
10
  return;
11
11
  }
12
- const endpointRuleOptions = {
13
- ...options,
14
- referenceRecord: { ...options.referenceRecord, ...referenceRecord },
15
- };
12
+ const endpointRuleOptions = referenceRecord
13
+ ? {
14
+ ...options,
15
+ referenceRecord: { ...options.referenceRecord, ...referenceRecord },
16
+ }
17
+ : options;
16
18
  const { url, properties, headers } = endpoint;
17
19
  options.logger?.debug?.(`${debugId} Resolving endpoint from template: ${toDebugString(endpoint)}`);
18
- return {
19
- ...(headers != undefined && {
20
- headers: getEndpointHeaders(headers, endpointRuleOptions),
21
- }),
22
- ...(properties != undefined && {
23
- properties: getEndpointProperties(properties, endpointRuleOptions),
24
- }),
25
- url: getEndpointUrl(url, endpointRuleOptions),
26
- };
20
+ const endpointToReturn = { url: getEndpointUrl(url, endpointRuleOptions) };
21
+ if (headers != null) {
22
+ endpointToReturn.headers = getEndpointHeaders(headers, endpointRuleOptions);
23
+ }
24
+ if (properties != null) {
25
+ endpointToReturn.properties = getEndpointProperties(properties, endpointRuleOptions);
26
+ }
27
+ return endpointToReturn;
27
28
  };
@@ -7,8 +7,11 @@ export const evaluateErrorRule = (errorRule, options) => {
7
7
  if (!result) {
8
8
  return;
9
9
  }
10
- throw new EndpointError(evaluateExpression(error, "Error", {
11
- ...options,
12
- referenceRecord: { ...options.referenceRecord, ...referenceRecord },
13
- }));
10
+ const errorRuleOptions = referenceRecord
11
+ ? {
12
+ ...options,
13
+ referenceRecord: { ...options.referenceRecord, ...referenceRecord },
14
+ }
15
+ : options;
16
+ throw new EndpointError(evaluateExpression(error, "Error", errorRuleOptions));
14
17
  };
@@ -26,17 +26,19 @@ export const callFunction = ({ fn, argv }, options) => {
26
26
  evaluatedArgs[i] = group.evaluateExpression(arg, "arg", options);
27
27
  }
28
28
  }
29
- if (fn.includes(".")) {
30
- const fnSegments = fn.split(".");
31
- if (fnSegments[0] in customEndpointFunctions && fnSegments[1] != null) {
32
- return customEndpointFunctions[fnSegments[0]][fnSegments[1]](...evaluatedArgs);
29
+ const namespaceSeparatorIndex = fn.indexOf(".");
30
+ if (namespaceSeparatorIndex !== -1) {
31
+ const namespaceFunctions = customEndpointFunctions[fn.slice(0, namespaceSeparatorIndex)];
32
+ const customFunction = namespaceFunctions?.[fn.slice(namespaceSeparatorIndex + 1)];
33
+ if (typeof customFunction === "function") {
34
+ return customFunction(...evaluatedArgs);
33
35
  }
34
36
  }
35
- if (typeof endpointFunctions[fn] !== "function") {
36
- throw new Error(`function ${fn} not loaded in endpointFunctions.`);
37
- }
38
37
  const callable = endpointFunctions[fn];
39
- return callable(...evaluatedArgs);
38
+ if (typeof callable === "function") {
39
+ return callable(...evaluatedArgs);
40
+ }
41
+ throw new Error(`function ${fn} not loaded in endpointFunctions.`);
40
42
  };
41
43
  export const group = {
42
44
  evaluateExpression,
@@ -31,10 +31,10 @@ export const evaluateTreeRule = (treeRule, options) => {
31
31
  if (!result) {
32
32
  return;
33
33
  }
34
- return group.evaluateRules(rules, {
35
- ...options,
36
- referenceRecord: { ...options.referenceRecord, ...referenceRecord },
37
- });
34
+ const treeRuleOptions = referenceRecord
35
+ ? { ...options, referenceRecord: { ...options.referenceRecord, ...referenceRecord } }
36
+ : options;
37
+ return group.evaluateRules(rules, treeRuleOptions);
38
38
  };
39
39
  export const group = {
40
40
  evaluateRules,
@@ -1,12 +1,12 @@
1
1
  import { EndpointError } from "../types";
2
2
  import { evaluateExpression } from "./evaluateExpression";
3
- export const getEndpointHeaders = (headers, options) => Object.entries(headers).reduce((acc, [headerKey, headerVal]) => ({
4
- ...acc,
5
- [headerKey]: headerVal.map((headerValEntry) => {
3
+ export const getEndpointHeaders = (headers, options) => Object.entries(headers ?? {}).reduce((acc, [headerKey, headerVal]) => {
4
+ acc[headerKey] = headerVal.map((headerValEntry) => {
6
5
  const processedExpr = evaluateExpression(headerValEntry, "Header value entry", options);
7
6
  if (typeof processedExpr !== "string") {
8
7
  throw new EndpointError(`Header '${headerKey}' value '${processedExpr}' is not a string`);
9
8
  }
10
9
  return processedExpr;
11
- }),
12
- }), {});
10
+ });
11
+ return acc;
12
+ }, {});
@@ -1,9 +1,9 @@
1
1
  import { EndpointError } from "../types";
2
2
  import { evaluateTemplate } from "./evaluateTemplate";
3
- export const getEndpointProperties = (properties, options) => Object.entries(properties).reduce((acc, [propertyKey, propertyVal]) => ({
4
- ...acc,
5
- [propertyKey]: group.getEndpointProperty(propertyVal, options),
6
- }), {});
3
+ export const getEndpointProperties = (properties, options) => Object.entries(properties).reduce((acc, [propertyKey, propertyVal]) => {
4
+ acc[propertyKey] = group.getEndpointProperty(propertyVal, options);
5
+ return acc;
6
+ }, {});
7
7
  export const getEndpointProperty = (property, options) => {
8
8
  if (Array.isArray(property)) {
9
9
  return property.map((propertyEntry) => getEndpointProperty(propertyEntry, options));
@@ -1,5 +1,5 @@
1
1
  import type { EndpointObjectHeaders, ParameterObject } from "@smithy/types";
2
- import type { FunctionArgv } from "../types/shared";
2
+ import type { Expression, FunctionArgv } from "../types/shared";
3
3
  /**
4
4
  * @internal
5
5
  */
@@ -7,7 +7,7 @@ type BddCondition = [string, FunctionArgv] | [string, FunctionArgv, string];
7
7
  /**
8
8
  * @internal
9
9
  */
10
- type BddResult = [-1] | [-1, string] | [string, Record<string, ParameterObject>, EndpointObjectHeaders];
10
+ type BddResult = [-1] | [-1, Expression] | [string, Record<string, ParameterObject>, EndpointObjectHeaders] | [string, Record<string, ParameterObject>];
11
11
  /**
12
12
  * @internal
13
13
  */
@@ -1,4 +1,4 @@
1
- import type { EndpointARN, EndpointPartition, Logger } from "@smithy/types";
1
+ import type { EndpointARN, EndpointPartition, EndpointURL, Logger } from "@smithy/types";
2
2
  export type ReferenceObject = {
3
3
  ref: string;
4
4
  };
@@ -7,9 +7,9 @@ export type FunctionObject = {
7
7
  argv: FunctionArgv;
8
8
  };
9
9
  export type FunctionArgv = Array<Expression | boolean | number>;
10
- export type FunctionReturn = string | boolean | number | EndpointARN | EndpointPartition | {
10
+ export type FunctionReturn = string | boolean | number | EndpointARN | EndpointPartition | EndpointURL | {
11
11
  [key: string]: FunctionReturn;
12
- } | null;
12
+ } | Array<FunctionReturn> | null;
13
13
  export type ConditionObject = FunctionObject & {
14
14
  assign?: string;
15
15
  };
@@ -1,15 +1,2 @@
1
- import { coalesce, ite, split } from "../lib";
2
- export declare const endpointFunctions: {
3
- booleanEquals: (value1: boolean, value2: boolean) => boolean;
4
- coalesce: typeof coalesce;
5
- getAttr: (value: import("../lib").GetAttrValue, path: string) => import("../lib").GetAttrValue;
6
- isSet: (value: unknown) => value is {};
7
- isValidHostLabel: (value: string, allowSubDomains?: boolean) => boolean;
8
- ite: typeof ite;
9
- not: (value: boolean) => boolean;
10
- parseURL: (value: string | URL | import("@smithy/types").Endpoint) => import("@smithy/types").EndpointURL | null;
11
- split: typeof split;
12
- stringEquals: (value1: string, value2: string) => boolean;
13
- substring: (input: string, start: number, stop: number, reverse: boolean) => string | null;
14
- uriEncode: (value: string) => string;
15
- };
1
+ import type { EndpointFunctions } from "../types";
2
+ export declare const endpointFunctions: EndpointFunctions;
@@ -1,8 +1,11 @@
1
1
  import type { ConditionObject, EvaluateOptions } from "../types";
2
- export declare const evaluateCondition: ({ assign, ...fnArgs }: ConditionObject, options: EvaluateOptions) => {
3
- toAssign?: {
2
+ export declare const evaluateCondition: (condition: ConditionObject, options: EvaluateOptions) => {
3
+ result: boolean;
4
+ toAssign: {
4
5
  name: string;
5
6
  value: import("../types").FunctionReturn;
6
- } | undefined;
7
+ };
8
+ } | {
7
9
  result: boolean;
10
+ toAssign?: undefined;
8
11
  };
@@ -1,8 +1,8 @@
1
1
  import type { ConditionObject, EvaluateOptions, FunctionReturn } from "../types";
2
2
  export declare const evaluateConditions: (conditions: ConditionObject[] | undefined, options: EvaluateOptions) => {
3
- result: false;
4
- referenceRecord?: undefined;
5
- } | {
6
3
  result: boolean;
7
4
  referenceRecord: Record<string, FunctionReturn>;
5
+ } | {
6
+ result: boolean;
7
+ referenceRecord?: undefined;
8
8
  };
@@ -1,2 +1,2 @@
1
1
  import type { EndpointObjectHeaders, EvaluateOptions } from "../types";
2
- export declare const getEndpointHeaders: (headers: EndpointObjectHeaders, options: EvaluateOptions) => {};
2
+ export declare const getEndpointHeaders: (headers: EndpointObjectHeaders, options: EvaluateOptions) => Record<string, string[]>;
@@ -1,8 +1,8 @@
1
1
  import type { EndpointObjectProperty } from "@smithy/types";
2
2
  import type { EndpointObjectProperties, EvaluateOptions } from "../types";
3
- export declare const getEndpointProperties: (properties: EndpointObjectProperties, options: EvaluateOptions) => {};
3
+ export declare const getEndpointProperties: (properties: EndpointObjectProperties, options: EvaluateOptions) => Record<string, EndpointObjectProperty>;
4
4
  export declare const getEndpointProperty: (property: EndpointObjectProperty, options: EvaluateOptions) => EndpointObjectProperty;
5
5
  export declare const group: {
6
6
  getEndpointProperty: (property: EndpointObjectProperty, options: EvaluateOptions) => EndpointObjectProperty;
7
- getEndpointProperties: (properties: EndpointObjectProperties, options: EvaluateOptions) => {};
7
+ getEndpointProperties: (properties: EndpointObjectProperties, options: EvaluateOptions) => Record<string, EndpointObjectProperty>;
8
8
  };
@@ -1,4 +1,4 @@
1
1
  import type { EvaluateOptions, ReferenceObject } from "../types";
2
- export declare const getReferenceValue: ({ ref }: ReferenceObject, options: EvaluateOptions) => string | number | boolean | import("@smithy/types").EndpointPartition | import("@smithy/types").EndpointARN | {
2
+ export declare const getReferenceValue: ({ ref }: ReferenceObject, options: EvaluateOptions) => string | number | boolean | import("@smithy/types").EndpointPartition | import("@smithy/types").EndpointARN | import("@smithy/types").EndpointURL | {
3
3
  [key: string]: import("../types").FunctionReturn;
4
- };
4
+ } | import("../types").FunctionReturn[];
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@smithy/util-endpoints",
3
- "version": "3.4.0",
3
+ "version": "3.4.2",
4
4
  "description": "Utilities to help with endpoint resolution.",
5
5
  "main": "./dist-cjs/index.js",
6
6
  "module": "./dist-es/index.js",
@@ -28,8 +28,8 @@
28
28
  "license": "Apache-2.0",
29
29
  "sideEffects": false,
30
30
  "dependencies": {
31
- "@smithy/node-config-provider": "^4.3.13",
32
- "@smithy/types": "^4.14.0",
31
+ "@smithy/node-config-provider": "^4.3.14",
32
+ "@smithy/types": "^4.14.1",
33
33
  "tslib": "^2.6.2"
34
34
  },
35
35
  "devDependencies": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@smithy/util-middleware",
3
- "version": "4.2.13",
3
+ "version": "4.2.14",
4
4
  "description": "Shared utilities for to be used in middleware packages.",
5
5
  "main": "./dist-cjs/index.js",
6
6
  "module": "./dist-es/index.js",
@@ -27,7 +27,7 @@
27
27
  "license": "Apache-2.0",
28
28
  "sideEffects": false,
29
29
  "dependencies": {
30
- "@smithy/types": "^4.14.0",
30
+ "@smithy/types": "^4.14.1",
31
31
  "tslib": "^2.6.2"
32
32
  },
33
33
  "devDependencies": {
@@ -187,6 +187,11 @@ class DefaultRetryToken {
187
187
  }
188
188
  }
189
189
 
190
+ const refusal = {
191
+ incompatible: 1,
192
+ attempts: 2,
193
+ capacity: 3,
194
+ };
190
195
  class StandardRetryStrategy {
191
196
  mode = exports.RETRY_MODES.STANDARD;
192
197
  capacity = INITIAL_RETRY_TOKENS;
@@ -214,8 +219,10 @@ class StandardRetryStrategy {
214
219
  }
215
220
  async refreshRetryTokenForRetry(token, errorInfo) {
216
221
  const maxAttempts = await this.getMaxAttempts();
217
- const shouldRetry = this.shouldRetry(token, errorInfo, maxAttempts);
218
- if (shouldRetry || token.isLongPoll?.()) {
222
+ const retryCode = this.retryCode(token, errorInfo, maxAttempts);
223
+ const shouldRetry = retryCode === 0;
224
+ const isLongPoll = token.isLongPoll?.();
225
+ if (shouldRetry || isLongPoll) {
219
226
  const errorType = errorInfo.errorType;
220
227
  this.retryBackoffStrategy.setDelayBase(errorType === "THROTTLING" ? Retry.throttlingDelay() : this.baseDelay);
221
228
  const delayFromErrorType = this.retryBackoffStrategy.computeNextBackoffDelay(token.getRetryCount());
@@ -224,7 +231,9 @@ class StandardRetryStrategy {
224
231
  retryDelay = Math.max(delayFromErrorType, Math.min(errorInfo.retryAfterHint.getTime() - Date.now(), delayFromErrorType + 5_000));
225
232
  }
226
233
  if (!shouldRetry) {
227
- throw Object.assign(new Error("No retry token available"), { $backoff: Retry.v2026 ? retryDelay : 0 });
234
+ throw Object.assign(new Error("No retry token available"), {
235
+ $backoff: Retry.v2026 && retryCode === refusal.capacity && isLongPoll ? retryDelay : 0,
236
+ });
228
237
  }
229
238
  else {
230
239
  const capacityCost = this.getCapacityCost(errorType);
@@ -240,6 +249,9 @@ class StandardRetryStrategy {
240
249
  getCapacity() {
241
250
  return this.capacity;
242
251
  }
252
+ async maxAttempts() {
253
+ return this.maxAttemptsProvider();
254
+ }
243
255
  async getMaxAttempts() {
244
256
  try {
245
257
  return await this.maxAttemptsProvider();
@@ -249,11 +261,12 @@ class StandardRetryStrategy {
249
261
  return DEFAULT_MAX_ATTEMPTS;
250
262
  }
251
263
  }
252
- shouldRetry(tokenToRenew, errorInfo, maxAttempts) {
264
+ retryCode(tokenToRenew, errorInfo, maxAttempts) {
253
265
  const attempts = tokenToRenew.getRetryCount() + 1;
254
- return (attempts < maxAttempts &&
255
- this.capacity >= this.getCapacityCost(errorInfo.errorType) &&
256
- this.isRetryableError(errorInfo.errorType));
266
+ const retryableStatus = this.isRetryableError(errorInfo.errorType) ? 0 : refusal.incompatible;
267
+ const attemptStatus = attempts < maxAttempts ? 0 : refusal.attempts;
268
+ const capacityStatus = this.capacity >= this.getCapacityCost(errorInfo.errorType) ? 0 : refusal.capacity;
269
+ return retryableStatus || attemptStatus || capacityStatus;
257
270
  }
258
271
  getCapacityCost(errorType) {
259
272
  return errorType === Retry.modifiedCostType() ? Retry.throttlingCost() : Retry.cost();
@@ -261,9 +274,6 @@ class StandardRetryStrategy {
261
274
  isRetryableError(errorType) {
262
275
  return errorType === "THROTTLING" || errorType === "TRANSIENT";
263
276
  }
264
- async maxAttempts() {
265
- return this.maxAttemptsProvider();
266
- }
267
277
  }
268
278
 
269
279
  class AdaptiveRetryStrategy {
@@ -3,6 +3,11 @@ import { INITIAL_RETRY_TOKENS, NO_RETRY_INCREMENT } from "./constants";
3
3
  import { DefaultRetryBackoffStrategy } from "./DefaultRetryBackoffStrategy";
4
4
  import { DefaultRetryToken } from "./DefaultRetryToken";
5
5
  import { Retry } from "./retries-2026-config";
6
+ const refusal = {
7
+ incompatible: 1,
8
+ attempts: 2,
9
+ capacity: 3,
10
+ };
6
11
  export class StandardRetryStrategy {
7
12
  mode = RETRY_MODES.STANDARD;
8
13
  capacity = INITIAL_RETRY_TOKENS;
@@ -30,8 +35,10 @@ export class StandardRetryStrategy {
30
35
  }
31
36
  async refreshRetryTokenForRetry(token, errorInfo) {
32
37
  const maxAttempts = await this.getMaxAttempts();
33
- const shouldRetry = this.shouldRetry(token, errorInfo, maxAttempts);
34
- if (shouldRetry || token.isLongPoll?.()) {
38
+ const retryCode = this.retryCode(token, errorInfo, maxAttempts);
39
+ const shouldRetry = retryCode === 0;
40
+ const isLongPoll = token.isLongPoll?.();
41
+ if (shouldRetry || isLongPoll) {
35
42
  const errorType = errorInfo.errorType;
36
43
  this.retryBackoffStrategy.setDelayBase(errorType === "THROTTLING" ? Retry.throttlingDelay() : this.baseDelay);
37
44
  const delayFromErrorType = this.retryBackoffStrategy.computeNextBackoffDelay(token.getRetryCount());
@@ -40,7 +47,9 @@ export class StandardRetryStrategy {
40
47
  retryDelay = Math.max(delayFromErrorType, Math.min(errorInfo.retryAfterHint.getTime() - Date.now(), delayFromErrorType + 5_000));
41
48
  }
42
49
  if (!shouldRetry) {
43
- throw Object.assign(new Error("No retry token available"), { $backoff: Retry.v2026 ? retryDelay : 0 });
50
+ throw Object.assign(new Error("No retry token available"), {
51
+ $backoff: Retry.v2026 && retryCode === refusal.capacity && isLongPoll ? retryDelay : 0,
52
+ });
44
53
  }
45
54
  else {
46
55
  const capacityCost = this.getCapacityCost(errorType);
@@ -56,6 +65,9 @@ export class StandardRetryStrategy {
56
65
  getCapacity() {
57
66
  return this.capacity;
58
67
  }
68
+ async maxAttempts() {
69
+ return this.maxAttemptsProvider();
70
+ }
59
71
  async getMaxAttempts() {
60
72
  try {
61
73
  return await this.maxAttemptsProvider();
@@ -65,11 +77,12 @@ export class StandardRetryStrategy {
65
77
  return DEFAULT_MAX_ATTEMPTS;
66
78
  }
67
79
  }
68
- shouldRetry(tokenToRenew, errorInfo, maxAttempts) {
80
+ retryCode(tokenToRenew, errorInfo, maxAttempts) {
69
81
  const attempts = tokenToRenew.getRetryCount() + 1;
70
- return (attempts < maxAttempts &&
71
- this.capacity >= this.getCapacityCost(errorInfo.errorType) &&
72
- this.isRetryableError(errorInfo.errorType));
82
+ const retryableStatus = this.isRetryableError(errorInfo.errorType) ? 0 : refusal.incompatible;
83
+ const attemptStatus = attempts < maxAttempts ? 0 : refusal.attempts;
84
+ const capacityStatus = this.capacity >= this.getCapacityCost(errorInfo.errorType) ? 0 : refusal.capacity;
85
+ return retryableStatus || attemptStatus || capacityStatus;
73
86
  }
74
87
  getCapacityCost(errorType) {
75
88
  return errorType === Retry.modifiedCostType() ? Retry.throttlingCost() : Retry.cost();
@@ -77,7 +90,4 @@ export class StandardRetryStrategy {
77
90
  isRetryableError(errorType) {
78
91
  return errorType === "THROTTLING" || errorType === "TRANSIENT";
79
92
  }
80
- async maxAttempts() {
81
- return this.maxAttemptsProvider();
82
- }
83
93
  }
@@ -36,13 +36,21 @@ export declare class StandardRetryStrategy implements RetryStrategyV2 {
36
36
  * @returns the current available retry capacity.
37
37
  */
38
38
  getCapacity(): number;
39
- private getMaxAttempts;
40
- private shouldRetry;
41
- private getCapacityCost;
42
- private isRetryableError;
43
39
  /**
44
40
  * There is an existing integration which accesses this field.
45
41
  * @deprecated
46
42
  */
47
43
  maxAttempts(): Promise<number>;
44
+ private getMaxAttempts;
45
+ /**
46
+ * 0 - OK to retry.
47
+ * 1 - error is not classified as retryable.
48
+ * 2 - attempt count exhausted.
49
+ * 3 - no capacity left (retry tokens exhausted).
50
+ *
51
+ * @returns 0 or the number of the highest priority (lowest integer) reason why retry is not possible.
52
+ */
53
+ private retryCode;
54
+ private getCapacityCost;
55
+ private isRetryableError;
48
56
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@smithy/util-retry",
3
- "version": "4.3.1",
3
+ "version": "4.3.5",
4
4
  "description": "Shared retry utilities to be used in middleware packages.",
5
5
  "main": "./dist-cjs/index.js",
6
6
  "module": "./dist-es/index.js",
@@ -30,8 +30,8 @@
30
30
  "license": "Apache-2.0",
31
31
  "sideEffects": false,
32
32
  "dependencies": {
33
- "@smithy/service-error-classification": "^4.2.13",
34
- "@smithy/types": "^4.14.0",
33
+ "@smithy/service-error-classification": "^4.3.1",
34
+ "@smithy/types": "^4.14.1",
35
35
  "tslib": "^2.6.2"
36
36
  },
37
37
  "devDependencies": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@smithy/util-stream",
3
- "version": "4.5.22",
3
+ "version": "4.5.25",
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-stream",
@@ -28,9 +28,9 @@
28
28
  "license": "Apache-2.0",
29
29
  "sideEffects": false,
30
30
  "dependencies": {
31
- "@smithy/fetch-http-handler": "^5.3.16",
32
- "@smithy/node-http-handler": "^4.5.2",
33
- "@smithy/types": "^4.14.0",
31
+ "@smithy/fetch-http-handler": "^5.3.17",
32
+ "@smithy/node-http-handler": "^4.6.1",
33
+ "@smithy/types": "^4.14.1",
34
34
  "@smithy/util-base64": "^4.3.2",
35
35
  "@smithy/util-buffer-from": "^4.2.2",
36
36
  "@smithy/util-hex-encoding": "^4.2.2",
@@ -52,39 +52,27 @@ const checkExceptions = (result) => {
52
52
  return result;
53
53
  };
54
54
 
55
- const exponentialBackoffWithJitter = (minDelay, maxDelay, attemptCeiling, attempt) => {
56
- if (attempt > attemptCeiling)
57
- return maxDelay;
58
- const delay = minDelay * 2 ** (attempt - 1);
59
- return randomInRange(minDelay, delay);
60
- };
61
- const randomInRange = (min, max) => min + Math.random() * (max - min);
62
55
  const runPolling = async ({ minDelay, maxDelay, maxWaitTime, abortController, client, abortSignal }, input, acceptorChecks) => {
63
56
  const observedResponses = {};
64
- const { state, reason } = await acceptorChecks(client, input);
65
- if (reason) {
66
- const message = createMessageFromResponse(reason);
67
- observedResponses[message] |= 0;
68
- observedResponses[message] += 1;
69
- }
70
- if (state !== exports.WaiterState.RETRY) {
71
- return { state, reason, observedResponses };
72
- }
73
- let currentAttempt = 1;
57
+ const [minDelayMs, maxDelayMs] = [minDelay * 1000, maxDelay * 1000];
58
+ let currentAttempt = 0;
74
59
  const waitUntil = Date.now() + maxWaitTime * 1000;
75
- const attemptCeiling = Math.log(maxDelay / minDelay) / Math.log(2) + 1;
60
+ const warn403Time = Date.now() + 60_000;
61
+ let didWarn403 = false;
76
62
  while (true) {
77
- if (abortController?.signal?.aborted || abortSignal?.aborted) {
78
- const message = "AbortController signal aborted.";
79
- observedResponses[message] |= 0;
80
- observedResponses[message] += 1;
81
- return { state: exports.WaiterState.ABORTED, observedResponses };
82
- }
83
- const delay = exponentialBackoffWithJitter(minDelay, maxDelay, attemptCeiling, currentAttempt);
84
- if (Date.now() + delay * 1000 > waitUntil) {
85
- return { state: exports.WaiterState.TIMEOUT, observedResponses };
63
+ if (currentAttempt > 0) {
64
+ const delayMs = exponentialBackoffWithJitter(minDelayMs, maxDelayMs, currentAttempt, waitUntil);
65
+ if (abortController?.signal?.aborted || abortSignal?.aborted) {
66
+ const message = "AbortController signal aborted.";
67
+ observedResponses[message] |= 0;
68
+ observedResponses[message] += 1;
69
+ return { state: exports.WaiterState.ABORTED, observedResponses };
70
+ }
71
+ if (Date.now() + delayMs > waitUntil) {
72
+ return { state: exports.WaiterState.TIMEOUT, observedResponses };
73
+ }
74
+ await sleep(delayMs / 1_000);
86
75
  }
87
- await sleep(delay);
88
76
  const { state, reason } = await acceptorChecks(client, input);
89
77
  if (reason) {
90
78
  const message = createMessageFromResponse(reason);
@@ -92,23 +80,60 @@ const runPolling = async ({ minDelay, maxDelay, maxWaitTime, abortController, cl
92
80
  observedResponses[message] += 1;
93
81
  }
94
82
  if (state !== exports.WaiterState.RETRY) {
95
- return { state, reason, observedResponses };
83
+ return { state, reason, final: reason, observedResponses };
96
84
  }
97
85
  currentAttempt += 1;
86
+ if (!didWarn403 && Date.now() >= warn403Time) {
87
+ checkWarn403(observedResponses, client);
88
+ didWarn403 = true;
89
+ }
90
+ }
91
+ };
92
+ const checkWarn403 = (observedResponses = {}, client) => {
93
+ const orderedErrors = Object.keys(observedResponses);
94
+ let count403 = 0;
95
+ for (const response of orderedErrors) {
96
+ const n = observedResponses[response] | 0;
97
+ if (response.startsWith("403:")) {
98
+ count403 += n;
99
+ }
100
+ }
101
+ const clientLogger = client?.config?.logger;
102
+ const warningLogger = typeof clientLogger?.warn === "function" && !clientLogger.constructor?.name?.includes?.("NoOpLogger")
103
+ ? clientLogger
104
+ : console;
105
+ if (count403 >= 3 || orderedErrors[orderedErrors.length - 1].startsWith("403:")) {
106
+ warningLogger.warn(`@smithy/util-waiter WARN - 403 status code encountered during waiter polling.`);
98
107
  }
99
108
  };
100
109
  const createMessageFromResponse = (reason) => {
110
+ const status = reason?.$response?.statusCode ?? reason?.$metadata?.httpStatusCode;
101
111
  if (reason?.$responseBodyText) {
102
- return `Deserialization error for body: ${reason.$responseBodyText}`;
112
+ return `${status ? status + ": " : ""}Deserialization error for body: ${reason.$responseBodyText}`;
103
113
  }
104
- if (reason?.$metadata?.httpStatusCode) {
105
- if (reason.$response || reason.message) {
106
- return `${reason.$response?.statusCode ?? reason.$metadata.httpStatusCode ?? "Unknown"}: ${reason.message}`;
114
+ if (status) {
115
+ if (reason?.$response || reason?.message) {
116
+ return `${status ?? "Unknown"}: ${reason?.message}`;
107
117
  }
108
- return `${reason.$metadata.httpStatusCode}: OK`;
118
+ return `${status}: OK`;
109
119
  }
110
120
  return String(reason?.message ?? JSON.stringify(reason, getCircularReplacer()) ?? "Unknown");
111
121
  };
122
+ const exponentialBackoffWithJitter = (minDelayMs, maxDelayMs, attempt, waitUntil) => {
123
+ const attemptCountCeiling = Math.log(maxDelayMs / minDelayMs) / Math.log(2) + 1;
124
+ if (attempt > attemptCountCeiling) {
125
+ return maxDelayMs;
126
+ }
127
+ const delay = minDelayMs * 2 ** (attempt - 1);
128
+ const capped = Math.min(delay, maxDelayMs);
129
+ const waitFor = randomInRange(minDelayMs, capped);
130
+ if (Date.now() + waitFor > waitUntil) {
131
+ const timeRemaining = waitUntil - Date.now();
132
+ return Math.max(0, timeRemaining - 500);
133
+ }
134
+ return waitFor;
135
+ };
136
+ const randomInRange = (min, max) => min + Math.random() * (max - min);
112
137
 
113
138
  const validateWaiterOptions = (options) => {
114
139
  if (options.maxWaitTime <= 0) {