@cdklabs/cdk-ecs-codedeploy 0.0.460 → 0.0.462

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 (168) 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/index.js +49 -11
  7. package/node_modules/@aws-sdk/client-codedeploy/dist-es/models/enums.js +6 -0
  8. package/node_modules/@aws-sdk/client-codedeploy/dist-es/models/errors.js +13 -0
  9. package/node_modules/@aws-sdk/client-codedeploy/dist-es/schemas/schemas_0.js +27 -11
  10. package/node_modules/@aws-sdk/client-codedeploy/dist-types/CodeDeployClient.d.ts +2 -1
  11. package/node_modules/@aws-sdk/client-codedeploy/dist-types/commands/BatchGetDeploymentGroupsCommand.d.ts +5 -0
  12. package/node_modules/@aws-sdk/client-codedeploy/dist-types/commands/BatchGetDeploymentsCommand.d.ts +5 -0
  13. package/node_modules/@aws-sdk/client-codedeploy/dist-types/commands/CreateDeploymentCommand.d.ts +11 -0
  14. package/node_modules/@aws-sdk/client-codedeploy/dist-types/commands/CreateDeploymentGroupCommand.d.ts +11 -0
  15. package/node_modules/@aws-sdk/client-codedeploy/dist-types/commands/GetDeploymentCommand.d.ts +5 -0
  16. package/node_modules/@aws-sdk/client-codedeploy/dist-types/commands/GetDeploymentGroupCommand.d.ts +5 -0
  17. package/node_modules/@aws-sdk/client-codedeploy/dist-types/commands/UpdateDeploymentGroupCommand.d.ts +11 -0
  18. package/node_modules/@aws-sdk/client-codedeploy/dist-types/models/enums.d.ts +14 -0
  19. package/node_modules/@aws-sdk/client-codedeploy/dist-types/models/errors.d.ts +16 -0
  20. package/node_modules/@aws-sdk/client-codedeploy/dist-types/models/models_0.d.ts +64 -1
  21. package/node_modules/@aws-sdk/client-codedeploy/dist-types/schemas/schemas_0.d.ts +2 -0
  22. package/node_modules/@aws-sdk/client-codedeploy/dist-types/ts3.4/models/enums.d.ts +8 -0
  23. package/node_modules/@aws-sdk/client-codedeploy/dist-types/ts3.4/models/errors.d.ts +8 -0
  24. package/node_modules/@aws-sdk/client-codedeploy/dist-types/ts3.4/models/models_0.d.ts +9 -0
  25. package/node_modules/@aws-sdk/client-codedeploy/dist-types/ts3.4/schemas/schemas_0.d.ts +2 -0
  26. package/node_modules/@aws-sdk/client-codedeploy/package.json +5 -5
  27. package/node_modules/@aws-sdk/core/dist-cjs/submodules/httpAuthSchemes/index.js +12 -3
  28. package/node_modules/@aws-sdk/core/dist-cjs/submodules/protocols/index.js +94 -1589
  29. package/node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4Signer.js +12 -3
  30. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/index.js +1 -7
  31. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/AwsJsonRpcProtocol.js +1 -3
  32. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/AwsRestJsonProtocol.js +1 -3
  33. package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/index.d.ts +2 -8
  34. package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/AwsJson1_0Protocol.d.ts +1 -2
  35. package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/AwsJson1_1Protocol.d.ts +1 -2
  36. package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/AwsJsonRpcProtocol.d.ts +2 -3
  37. package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/AwsRestJsonProtocol.d.ts +2 -3
  38. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/index.d.ts +10 -10
  39. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/AwsJson1_0Protocol.d.ts +1 -2
  40. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/AwsJson1_1Protocol.d.ts +1 -2
  41. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/AwsJsonRpcProtocol.d.ts +2 -3
  42. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/AwsRestJsonProtocol.d.ts +2 -3
  43. package/node_modules/@aws-sdk/core/package.json +3 -3
  44. package/node_modules/@aws-sdk/credential-provider-env/package.json +4 -4
  45. package/node_modules/@aws-sdk/credential-provider-http/package.json +4 -4
  46. package/node_modules/@aws-sdk/credential-provider-ini/package.json +11 -11
  47. package/node_modules/@aws-sdk/credential-provider-login/package.json +5 -5
  48. package/node_modules/@aws-sdk/credential-provider-node/package.json +9 -9
  49. package/node_modules/@aws-sdk/credential-provider-process/package.json +4 -4
  50. package/node_modules/@aws-sdk/credential-provider-sso/package.json +6 -6
  51. package/node_modules/@aws-sdk/credential-provider-web-identity/package.json +5 -5
  52. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/cognito-identity/index.js +1 -1
  53. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/signin/index.js +1 -1
  54. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso/index.js +1 -1
  55. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/index.js +1 -1
  56. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/index.js +1 -1
  57. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/cognito-identity/CognitoIdentityClient.d.ts +2 -1
  58. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/signin/SigninClient.d.ts +2 -1
  59. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso/SSOClient.d.ts +2 -1
  60. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/SSOOIDCClient.d.ts +2 -1
  61. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/STSClient.d.ts +2 -1
  62. package/node_modules/@aws-sdk/nested-clients/package.json +5 -5
  63. package/node_modules/@aws-sdk/signature-v4-multi-region/package.json +2 -2
  64. package/node_modules/@aws-sdk/token-providers/dist-cjs/index.js +37 -19
  65. package/node_modules/@aws-sdk/token-providers/dist-es/fromSso.js +37 -19
  66. package/node_modules/@aws-sdk/token-providers/package.json +5 -5
  67. package/node_modules/@aws-sdk/types/dist-types/feature-ids.d.ts +3 -0
  68. package/node_modules/@aws-sdk/types/dist-types/ts3.4/feature-ids.d.ts +3 -0
  69. package/node_modules/@aws-sdk/types/package.json +1 -1
  70. package/node_modules/@smithy/core/dist-cjs/submodules/cbor/index.js +13 -37
  71. package/node_modules/@smithy/core/dist-cjs/submodules/client/index.js +15 -2
  72. package/node_modules/@smithy/core/dist-cjs/submodules/event-streams/index.browser.js +10 -0
  73. package/node_modules/@smithy/core/dist-cjs/submodules/event-streams/index.js +10 -0
  74. package/node_modules/@smithy/core/dist-cjs/submodules/protocols/index.js +1711 -4
  75. package/node_modules/@smithy/core/dist-es/submodules/cbor/SmithyRpcV2CborProtocol.js +12 -37
  76. package/node_modules/@smithy/core/dist-es/submodules/client/smithy-client/command.js +16 -2
  77. package/node_modules/@smithy/core/dist-es/submodules/event-streams/eventstream-codec/HeaderMarshaller.js +10 -0
  78. package/node_modules/@smithy/core/dist-es/submodules/protocols/AbstractRpcV2Protocol.js +35 -0
  79. package/node_modules/@smithy/core/dist-es/submodules/protocols/ConfigurableSerdeContext.js +6 -0
  80. package/node_modules/@smithy/core/dist-es/submodules/protocols/RpcProtocol.js +4 -1
  81. package/node_modules/@smithy/core/dist-es/submodules/protocols/UnionSerde.js +26 -0
  82. package/node_modules/@smithy/core/dist-es/submodules/protocols/common.js +3 -0
  83. package/node_modules/@smithy/core/dist-es/submodules/protocols/index.js +9 -0
  84. package/node_modules/@smithy/core/dist-es/submodules/protocols/json/SmithyRpcV2JsonProtocol.js +79 -0
  85. package/node_modules/{@aws-sdk → @smithy}/core/dist-es/submodules/protocols/json/codec-v1/JsonShapeDeserializer.js +8 -1
  86. package/node_modules/{@aws-sdk → @smithy}/core/dist-es/submodules/protocols/json/codec-v1/JsonShapeSerializer.js +8 -1
  87. package/node_modules/{@aws-sdk → @smithy}/core/dist-es/submodules/protocols/json/codec-v2/JsonShapeDeserializer2.js +13 -2
  88. package/node_modules/{@aws-sdk → @smithy}/core/dist-es/submodules/protocols/json/codec-v2/JsonShapeSerializer2.js +16 -6
  89. package/node_modules/{@aws-sdk → @smithy}/core/dist-es/submodules/protocols/json/parseJsonBody.js +16 -1
  90. package/node_modules/@smithy/core/dist-es/submodules/protocols/writeKey.js +3 -0
  91. package/node_modules/@smithy/core/dist-types/submodules/cbor/SmithyRpcV2CborProtocol.d.ts +5 -14
  92. package/node_modules/@smithy/core/dist-types/submodules/protocols/AbstractRpcV2Protocol.d.ts +45 -0
  93. package/node_modules/@smithy/core/dist-types/submodules/protocols/ConfigurableSerdeContext.d.ts +8 -0
  94. package/node_modules/@smithy/core/dist-types/submodules/protocols/RpcProtocol.d.ts +12 -0
  95. package/node_modules/@smithy/core/dist-types/submodules/protocols/UnionSerde.d.ts +24 -0
  96. package/node_modules/@smithy/core/dist-types/submodules/protocols/common.d.ts +2 -0
  97. package/node_modules/@smithy/core/dist-types/submodules/protocols/index.d.ts +10 -0
  98. package/node_modules/@smithy/core/dist-types/submodules/protocols/json/JsonSettings.d.ts +13 -0
  99. package/node_modules/@smithy/core/dist-types/submodules/protocols/json/SmithyRpcV2JsonProtocol.d.ts +19 -0
  100. package/node_modules/{@aws-sdk → @smithy}/core/dist-types/submodules/protocols/json/parseJsonBody.d.ts +16 -0
  101. package/node_modules/@smithy/core/dist-types/submodules/protocols/writeKey.d.ts +4 -0
  102. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/cbor/SmithyRpcV2CborProtocol.d.ts +5 -14
  103. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/AbstractRpcV2Protocol.d.ts +45 -0
  104. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/ConfigurableSerdeContext.d.ts +8 -0
  105. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/RpcProtocol.d.ts +12 -0
  106. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/UnionSerde.d.ts +24 -0
  107. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/common.d.ts +2 -0
  108. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/index.d.ts +10 -0
  109. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/json/JsonSettings.d.ts +13 -0
  110. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/json/SmithyRpcV2JsonProtocol.d.ts +19 -0
  111. package/node_modules/{@aws-sdk → @smithy}/core/dist-types/ts3.4/submodules/protocols/json/codec-v1/JsonCodec.d.ts +15 -11
  112. package/node_modules/{@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json → @smithy/core/dist-types/ts3.4/submodules/protocols/json/codec-v1}/JsonSettings.d.ts +7 -4
  113. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/json/codec-v1/JsonShapeDeserializer.d.ts +14 -0
  114. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/json/codec-v1/JsonShapeSerializer.d.ts +29 -0
  115. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/json/codec-v2/JsonBytesStringAdapter.d.ts +51 -0
  116. package/node_modules/{@aws-sdk → @smithy}/core/dist-types/ts3.4/submodules/protocols/json/codec-v2/JsonCodec2.d.ts +13 -9
  117. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/json/codec-v2/JsonShapeDeserializer2.d.ts +30 -0
  118. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/json/codec-v2/JsonShapeSerializer2.d.ts +60 -0
  119. package/node_modules/{@aws-sdk → @smithy}/core/dist-types/ts3.4/submodules/protocols/json/detectBufferParsing.d.ts +1 -1
  120. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/json/jsonReplacer.d.ts +21 -0
  121. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/json/jsonReviver.d.ts +15 -0
  122. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/json/needsReviver.d.ts +11 -0
  123. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/json/parseJsonBody.d.ts +38 -0
  124. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/writeKey.d.ts +4 -0
  125. package/node_modules/@smithy/core/package.json +2 -1
  126. package/node_modules/@smithy/node-http-handler/dist-cjs/index.js +48 -6
  127. package/node_modules/@smithy/node-http-handler/dist-es/node-http-handler.js +9 -1
  128. package/node_modules/@smithy/node-http-handler/dist-es/node-http2-handler.js +20 -2
  129. package/node_modules/@smithy/node-http-handler/dist-es/resolve-default-socket-timeout.js +4 -0
  130. package/node_modules/@smithy/node-http-handler/dist-es/set-socket-timeout.js +16 -3
  131. package/node_modules/@smithy/node-http-handler/dist-types/resolve-default-socket-timeout.d.ts +4 -0
  132. package/node_modules/@smithy/node-http-handler/dist-types/set-socket-timeout.d.ts +6 -1
  133. package/node_modules/@smithy/node-http-handler/dist-types/ts3.4/resolve-default-socket-timeout.d.ts +4 -0
  134. package/node_modules/@smithy/node-http-handler/dist-types/ts3.4/set-socket-timeout.d.ts +6 -1
  135. package/node_modules/@smithy/node-http-handler/package.json +3 -3
  136. package/package.json +2 -2
  137. package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/codec-v1/JsonSettings.d.ts +0 -7
  138. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/codec-v1/JsonSettings.d.ts +0 -4
  139. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/codec-v1/JsonShapeDeserializer.d.ts +0 -13
  140. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/codec-v1/JsonShapeSerializer.d.ts +0 -18
  141. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/codec-v2/JsonBytesStringAdapter.d.ts +0 -27
  142. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/codec-v2/JsonShapeDeserializer2.d.ts +0 -15
  143. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/codec-v2/JsonShapeSerializer2.d.ts +0 -39
  144. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/jsonReplacer.d.ts +0 -7
  145. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/jsonReviver.d.ts +0 -7
  146. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/needsReviver.d.ts +0 -2
  147. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/parseJsonBody.d.ts +0 -14
  148. /package/node_modules/{@aws-sdk → @smithy}/core/dist-es/submodules/protocols/json/JsonSettings.js +0 -0
  149. /package/node_modules/{@aws-sdk → @smithy}/core/dist-es/submodules/protocols/json/codec-v1/JsonCodec.js +0 -0
  150. /package/node_modules/{@aws-sdk → @smithy}/core/dist-es/submodules/protocols/json/codec-v1/JsonSettings.js +0 -0
  151. /package/node_modules/{@aws-sdk → @smithy}/core/dist-es/submodules/protocols/json/codec-v2/JsonBytesStringAdapter.js +0 -0
  152. /package/node_modules/{@aws-sdk → @smithy}/core/dist-es/submodules/protocols/json/codec-v2/JsonCodec2.js +0 -0
  153. /package/node_modules/{@aws-sdk → @smithy}/core/dist-es/submodules/protocols/json/detectBufferParsing.js +0 -0
  154. /package/node_modules/{@aws-sdk → @smithy}/core/dist-es/submodules/protocols/json/jsonReplacer.js +0 -0
  155. /package/node_modules/{@aws-sdk → @smithy}/core/dist-es/submodules/protocols/json/jsonReviver.js +0 -0
  156. /package/node_modules/{@aws-sdk → @smithy}/core/dist-es/submodules/protocols/json/needsReviver.js +0 -0
  157. /package/node_modules/{@aws-sdk → @smithy}/core/dist-types/submodules/protocols/json/codec-v1/JsonCodec.d.ts +0 -0
  158. /package/node_modules/{@aws-sdk/core/dist-types/submodules/protocols/json → @smithy/core/dist-types/submodules/protocols/json/codec-v1}/JsonSettings.d.ts +0 -0
  159. /package/node_modules/{@aws-sdk → @smithy}/core/dist-types/submodules/protocols/json/codec-v1/JsonShapeDeserializer.d.ts +0 -0
  160. /package/node_modules/{@aws-sdk → @smithy}/core/dist-types/submodules/protocols/json/codec-v1/JsonShapeSerializer.d.ts +0 -0
  161. /package/node_modules/{@aws-sdk → @smithy}/core/dist-types/submodules/protocols/json/codec-v2/JsonBytesStringAdapter.d.ts +0 -0
  162. /package/node_modules/{@aws-sdk → @smithy}/core/dist-types/submodules/protocols/json/codec-v2/JsonCodec2.d.ts +0 -0
  163. /package/node_modules/{@aws-sdk → @smithy}/core/dist-types/submodules/protocols/json/codec-v2/JsonShapeDeserializer2.d.ts +0 -0
  164. /package/node_modules/{@aws-sdk → @smithy}/core/dist-types/submodules/protocols/json/codec-v2/JsonShapeSerializer2.d.ts +0 -0
  165. /package/node_modules/{@aws-sdk → @smithy}/core/dist-types/submodules/protocols/json/detectBufferParsing.d.ts +0 -0
  166. /package/node_modules/{@aws-sdk → @smithy}/core/dist-types/submodules/protocols/json/jsonReplacer.d.ts +0 -0
  167. /package/node_modules/{@aws-sdk → @smithy}/core/dist-types/submodules/protocols/json/jsonReviver.d.ts +0 -0
  168. /package/node_modules/{@aws-sdk → @smithy}/core/dist-types/submodules/protocols/json/needsReviver.d.ts +0 -0
@@ -0,0 +1,38 @@
1
+ import { HttpResponse, Schema, SerdeFunctions } from "@smithy/types";
2
+ /**
3
+ * @deprecated new calls to parseJsonBody must pass schema.
4
+ * @internal
5
+ */
6
+ export declare function parseJsonBody(streamBody: any, context: SerdeFunctions): Promise<any>;
7
+ /**
8
+ * @internal
9
+ */
10
+ export declare function parseJsonBody(streamBody: any, context: SerdeFunctions, schema: Schema): Promise<any>;
11
+ /**
12
+ * @internal
13
+ */
14
+ export declare const parseJsonErrorBody: (errorBody: any, context: SerdeFunctions) => Promise<any>;
15
+ /**
16
+ * @internal
17
+ */
18
+ export declare const loadRestJsonErrorCode: (output: HttpResponse, data: any) => string | undefined;
19
+ /**
20
+ * @internal
21
+ */
22
+ export declare const loadJsonRpcErrorCode: (output: HttpResponse, data: any, queryCompat?: boolean) => string | undefined;
23
+ /**
24
+ * Smithy RPCv2 JSON error identifier loader.
25
+ *
26
+ * Unlike {@link loadJsonRpcErrorCode} (used by AWS JSON 1.0/1.1 and restJson1),
27
+ * this preserves the ABSOLUTE shape id carried in `__type`. The RPCv2 JSON SEP
28
+ * requires `__type` to contain the fully-qualified shape id, and the protocol
29
+ * resolves errors by that absolute id to avoid ambiguous resolution when the
30
+ * same shape name exists in more than one namespace.
31
+ *
32
+ * It trims the Smithy-specific `,` fault/tag suffix and the `:` suffix, but does
33
+ * NOT strip the `#` namespace separator:
34
+ * "com.a.b#Error:Sender,tag" -> "com.a.b#Error"
35
+ *
36
+ * @internal
37
+ */
38
+ export declare const loadSmithyRpcV2JsonErrorCode: (output: HttpResponse, data: any) => string | undefined;
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Makes __proto__ writable on a given object.
3
+ */
4
+ export declare function writeKey(obj: object | Record<string, unknown> | any): void;
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@smithy/core",
3
- "version": "3.35.2",
3
+ "version": "3.37.0",
4
4
  "homepage": "https://github.com/smithy-lang/smithy-typescript/tree/main/packages/core",
5
5
  "license": "Apache-2.0",
6
6
  "author": {
@@ -226,6 +226,7 @@
226
226
  "scripts": {
227
227
  "benchmark:cbor": "node ./scripts/cbor-perf.mjs",
228
228
  "benchmark:checksum": "node ./scripts/checksum-perf.mjs",
229
+ "benchmark:json": "npx tsx ./scripts/benchmark-json-serializer.ts",
229
230
  "benchmark:schema:cbor": "node ./scripts/cbor-shape-perf.mjs",
230
231
  "build": "concurrently 'yarn:build:types' 'yarn:build:es:cjs'",
231
232
  "build:es:cjs": "node ../../scripts/compilation/es_cjs.js",
@@ -123,13 +123,26 @@ const setSocketKeepAlive = (request, { keepAlive, keepAliveMsecs }, deferTimeMs
123
123
  return timing.setTimeout(registerListener, deferTimeMs);
124
124
  };
125
125
 
126
+ const resolveDefaultSocketTimeout = (config) => {
127
+ const value = config?.defaultSocketTimeout;
128
+ return typeof value === "number" && Number.isFinite(value) && value > 0 ? value : undefined;
129
+ };
130
+
126
131
  const DEFER_EVENT_LISTENER_TIME = 3000;
127
- const setSocketTimeout = (request, reject, timeoutInMs = 0) => {
132
+ const setSocketTimeout = (request, reject, timeoutInMs = 0, destroyResponseBodyOnTimeout = false) => {
133
+ let response;
134
+ if (destroyResponseBodyOnTimeout) {
135
+ request.once("response", (res) => (response = res));
136
+ }
128
137
  const registerTimeout = (offset) => {
129
138
  const timeout = timeoutInMs - offset;
130
139
  const onTimeout = () => {
140
+ const error = Object.assign(new Error(`@smithy/node-http-handler - the request socket timed out after ${timeoutInMs} ms of inactivity (${destroyResponseBodyOnTimeout ? "service default socket timeout" : "configured by client requestHandler"}).`), { name: "TimeoutError" });
141
+ if (destroyResponseBodyOnTimeout) {
142
+ response?.destroy(error);
143
+ }
131
144
  request.destroy();
132
- reject(Object.assign(new Error(`@smithy/node-http-handler - the request socket timed out after ${timeoutInMs} ms of inactivity (configured by client requestHandler).`), { name: "TimeoutError" }));
145
+ reject(error);
133
146
  };
134
147
  if (request.socket) {
135
148
  request.socket.setTimeout(timeout, onTimeout);
@@ -143,7 +156,12 @@ const setSocketTimeout = (request, reject, timeoutInMs = 0) => {
143
156
  registerTimeout(0);
144
157
  return 0;
145
158
  }
146
- return timing.setTimeout(registerTimeout.bind(null, timeoutInMs === 0 ? 0 : DEFER_EVENT_LISTENER_TIME), DEFER_EVENT_LISTENER_TIME);
159
+ const deferralId = timing.setTimeout(registerTimeout.bind(null, timeoutInMs === 0 ? 0 : DEFER_EVENT_LISTENER_TIME), DEFER_EVENT_LISTENER_TIME);
160
+ if (destroyResponseBodyOnTimeout) {
161
+ request.once("close", () => timing.clearTimeout(deferralId));
162
+ return 0;
163
+ }
164
+ return deferralId;
147
165
  };
148
166
 
149
167
  const MIN_WAIT_TIME = 6_000;
@@ -383,7 +401,13 @@ or increase socketAcquisitionWarningTimeout=(millis) in the NodeHttpHandler conf
383
401
  const effectiveRequestTimeout = requestTimeout ?? config.requestTimeout;
384
402
  connectionTimeoutId = setConnectionTimeout(req, reject, config.connectionTimeout);
385
403
  requestTimeoutId = setRequestTimeout(req, reject, effectiveRequestTimeout, config.throwOnRequestTimeout, logger ?? console);
386
- socketTimeoutId = setSocketTimeout(req, reject, config.socketTimeout);
404
+ const defaultSocketTimeout = config.socketTimeout === undefined ? resolveDefaultSocketTimeout(config) : undefined;
405
+ if (defaultSocketTimeout) {
406
+ socketTimeoutId = setSocketTimeout(req, reject, defaultSocketTimeout, true);
407
+ }
408
+ else {
409
+ socketTimeoutId = setSocketTimeout(req, reject, config.socketTimeout);
410
+ }
387
411
  const httpAgent = nodeHttpsOptions.agent;
388
412
  if (typeof httpAgent === "object" && "keepAlive" in httpAgent) {
389
413
  keepAliveTimeoutId = setSocketKeepAlive(req, {
@@ -423,6 +447,7 @@ or increase socketAcquisitionWarningTimeout=(millis) in the NodeHttpHandler conf
423
447
  connectionTimeout,
424
448
  requestTimeout,
425
449
  socketTimeout,
450
+ defaultSocketTimeout: resolveDefaultSocketTimeout(options),
426
451
  socketAcquisitionWarningTimeout,
427
452
  throwOnRequestTimeout,
428
453
  httpAgentProvider: async () => {
@@ -710,7 +735,8 @@ class NodeHttp2Handler {
710
735
  }
711
736
  async handle(request, { abortSignal, requestTimeout, isEventStream } = {}) {
712
737
  if (!this.config) {
713
- this.config = await this.configProvider;
738
+ const config = await this.configProvider;
739
+ this.config = { ...config, defaultSocketTimeout: resolveDefaultSocketTimeout(config) };
714
740
  const { disableConcurrentStreams, maxConcurrentStreams, nodeHttp2ConnectOptions } = this.config;
715
741
  this.connectionManager.setDisableConcurrentStreams(disableConcurrentStreams ?? false);
716
742
  if (maxConcurrentStreams) {
@@ -720,9 +746,12 @@ class NodeHttp2Handler {
720
746
  this.connectionManager.setNodeHttp2ConnectOptions(nodeHttp2ConnectOptions);
721
747
  }
722
748
  }
723
- const { requestTimeout: configRequestTimeout, disableConcurrentStreams } = this.config;
749
+ const { requestTimeout: configRequestTimeout, disableConcurrentStreams, sessionTimeout } = this.config;
724
750
  const useIsolatedSession = disableConcurrentStreams || isEventStream;
725
751
  const effectiveRequestTimeout = requestTimeout ?? configRequestTimeout;
752
+ const defaultSocketTimeout = effectiveRequestTimeout === undefined && sessionTimeout === undefined
753
+ ? this.config.defaultSocketTimeout
754
+ : undefined;
726
755
  return new Promise((_resolve, _reject) => {
727
756
  let fulfilled = false;
728
757
  let writeRequestBodyPromise = undefined;
@@ -785,6 +814,19 @@ class NodeHttp2Handler {
785
814
  rejectWithDestroy(timeoutError);
786
815
  });
787
816
  }
817
+ else if (defaultSocketTimeout) {
818
+ clientHttp2Stream.setTimeout(defaultSocketTimeout, () => {
819
+ const timeoutError = new Error(`Stream timed out because of no activity for ${defaultSocketTimeout} ms`);
820
+ timeoutError.name = "TimeoutError";
821
+ fulfilled = true;
822
+ reject(timeoutError);
823
+ clientHttp2Stream.destroy(timeoutError);
824
+ if (useIsolatedSession) {
825
+ ref.destroy();
826
+ }
827
+ });
828
+ clientHttp2Stream.once("response", () => clientHttp2Stream.setTimeout(defaultSocketTimeout));
829
+ }
788
830
  if (abortSignal) {
789
831
  const onAbort = () => {
790
832
  clientHttp2Stream.close();
@@ -7,6 +7,7 @@ import { node_https } from "./node-https";
7
7
  import { setConnectionTimeout } from "./set-connection-timeout";
8
8
  import { setRequestTimeout } from "./set-request-timeout";
9
9
  import { setSocketKeepAlive } from "./set-socket-keep-alive";
10
+ import { resolveDefaultSocketTimeout } from "./resolve-default-socket-timeout";
10
11
  import { setSocketTimeout } from "./set-socket-timeout";
11
12
  import { timing } from "./timing";
12
13
  import { writeRequestBody } from "./write-request-body";
@@ -185,7 +186,13 @@ or increase socketAcquisitionWarningTimeout=(millis) in the NodeHttpHandler conf
185
186
  const effectiveRequestTimeout = requestTimeout ?? config.requestTimeout;
186
187
  connectionTimeoutId = setConnectionTimeout(req, reject, config.connectionTimeout);
187
188
  requestTimeoutId = setRequestTimeout(req, reject, effectiveRequestTimeout, config.throwOnRequestTimeout, logger ?? console);
188
- socketTimeoutId = setSocketTimeout(req, reject, config.socketTimeout);
189
+ const defaultSocketTimeout = config.socketTimeout === undefined ? resolveDefaultSocketTimeout(config) : undefined;
190
+ if (defaultSocketTimeout) {
191
+ socketTimeoutId = setSocketTimeout(req, reject, defaultSocketTimeout, true);
192
+ }
193
+ else {
194
+ socketTimeoutId = setSocketTimeout(req, reject, config.socketTimeout);
195
+ }
189
196
  const httpAgent = nodeHttpsOptions.agent;
190
197
  if (typeof httpAgent === "object" && "keepAlive" in httpAgent) {
191
198
  keepAliveTimeoutId = setSocketKeepAlive(req, {
@@ -225,6 +232,7 @@ or increase socketAcquisitionWarningTimeout=(millis) in the NodeHttpHandler conf
225
232
  connectionTimeout,
226
233
  requestTimeout,
227
234
  socketTimeout,
235
+ defaultSocketTimeout: resolveDefaultSocketTimeout(options),
228
236
  socketAcquisitionWarningTimeout,
229
237
  throwOnRequestTimeout,
230
238
  httpAgentProvider: async () => {
@@ -3,6 +3,7 @@ import { buildAbortError } from "./build-abort-error";
3
3
  import { getTransformedHeaders } from "./get-transformed-headers";
4
4
  import { node_http2 } from "./node-http2";
5
5
  import { NodeHttp2ConnectionManager } from "./node-http2-connection-manager";
6
+ import { resolveDefaultSocketTimeout } from "./resolve-default-socket-timeout";
6
7
  import { writeRequestBody } from "./write-request-body";
7
8
  const { constants } = node_http2;
8
9
  export class NodeHttp2Handler {
@@ -35,7 +36,8 @@ export class NodeHttp2Handler {
35
36
  }
36
37
  async handle(request, { abortSignal, requestTimeout, isEventStream } = {}) {
37
38
  if (!this.config) {
38
- this.config = await this.configProvider;
39
+ const config = await this.configProvider;
40
+ this.config = { ...config, defaultSocketTimeout: resolveDefaultSocketTimeout(config) };
39
41
  const { disableConcurrentStreams, maxConcurrentStreams, nodeHttp2ConnectOptions } = this.config;
40
42
  this.connectionManager.setDisableConcurrentStreams(disableConcurrentStreams ?? false);
41
43
  if (maxConcurrentStreams) {
@@ -45,9 +47,12 @@ export class NodeHttp2Handler {
45
47
  this.connectionManager.setNodeHttp2ConnectOptions(nodeHttp2ConnectOptions);
46
48
  }
47
49
  }
48
- const { requestTimeout: configRequestTimeout, disableConcurrentStreams } = this.config;
50
+ const { requestTimeout: configRequestTimeout, disableConcurrentStreams, sessionTimeout } = this.config;
49
51
  const useIsolatedSession = disableConcurrentStreams || isEventStream;
50
52
  const effectiveRequestTimeout = requestTimeout ?? configRequestTimeout;
53
+ const defaultSocketTimeout = effectiveRequestTimeout === undefined && sessionTimeout === undefined
54
+ ? this.config.defaultSocketTimeout
55
+ : undefined;
51
56
  return new Promise((_resolve, _reject) => {
52
57
  let fulfilled = false;
53
58
  let writeRequestBodyPromise = undefined;
@@ -110,6 +115,19 @@ export class NodeHttp2Handler {
110
115
  rejectWithDestroy(timeoutError);
111
116
  });
112
117
  }
118
+ else if (defaultSocketTimeout) {
119
+ clientHttp2Stream.setTimeout(defaultSocketTimeout, () => {
120
+ const timeoutError = new Error(`Stream timed out because of no activity for ${defaultSocketTimeout} ms`);
121
+ timeoutError.name = "TimeoutError";
122
+ fulfilled = true;
123
+ reject(timeoutError);
124
+ clientHttp2Stream.destroy(timeoutError);
125
+ if (useIsolatedSession) {
126
+ ref.destroy();
127
+ }
128
+ });
129
+ clientHttp2Stream.once("response", () => clientHttp2Stream.setTimeout(defaultSocketTimeout));
130
+ }
113
131
  if (abortSignal) {
114
132
  const onAbort = () => {
115
133
  clientHttp2Stream.close();
@@ -0,0 +1,4 @@
1
+ export const resolveDefaultSocketTimeout = (config) => {
2
+ const value = config?.defaultSocketTimeout;
3
+ return typeof value === "number" && Number.isFinite(value) && value > 0 ? value : undefined;
4
+ };
@@ -1,11 +1,19 @@
1
1
  import { timing } from "./timing";
2
2
  const DEFER_EVENT_LISTENER_TIME = 3000;
3
- export const setSocketTimeout = (request, reject, timeoutInMs = 0) => {
3
+ export const setSocketTimeout = (request, reject, timeoutInMs = 0, destroyResponseBodyOnTimeout = false) => {
4
+ let response;
5
+ if (destroyResponseBodyOnTimeout) {
6
+ request.once("response", (res) => (response = res));
7
+ }
4
8
  const registerTimeout = (offset) => {
5
9
  const timeout = timeoutInMs - offset;
6
10
  const onTimeout = () => {
11
+ const error = Object.assign(new Error(`@smithy/node-http-handler - the request socket timed out after ${timeoutInMs} ms of inactivity (${destroyResponseBodyOnTimeout ? "service default socket timeout" : "configured by client requestHandler"}).`), { name: "TimeoutError" });
12
+ if (destroyResponseBodyOnTimeout) {
13
+ response?.destroy(error);
14
+ }
7
15
  request.destroy();
8
- reject(Object.assign(new Error(`@smithy/node-http-handler - the request socket timed out after ${timeoutInMs} ms of inactivity (configured by client requestHandler).`), { name: "TimeoutError" }));
16
+ reject(error);
9
17
  };
10
18
  if (request.socket) {
11
19
  request.socket.setTimeout(timeout, onTimeout);
@@ -19,5 +27,10 @@ export const setSocketTimeout = (request, reject, timeoutInMs = 0) => {
19
27
  registerTimeout(0);
20
28
  return 0;
21
29
  }
22
- return timing.setTimeout(registerTimeout.bind(null, timeoutInMs === 0 ? 0 : DEFER_EVENT_LISTENER_TIME), DEFER_EVENT_LISTENER_TIME);
30
+ const deferralId = timing.setTimeout(registerTimeout.bind(null, timeoutInMs === 0 ? 0 : DEFER_EVENT_LISTENER_TIME), DEFER_EVENT_LISTENER_TIME);
31
+ if (destroyResponseBodyOnTimeout) {
32
+ request.once("close", () => timing.clearTimeout(deferralId));
33
+ return 0;
34
+ }
35
+ return deferralId;
23
36
  };
@@ -0,0 +1,4 @@
1
+ /**
2
+ * @internal
3
+ */
4
+ export declare const resolveDefaultSocketTimeout: (config: unknown) => number | undefined;
@@ -1,2 +1,7 @@
1
1
  import type { ClientRequest } from "node:http";
2
- export declare const setSocketTimeout: (request: ClientRequest, reject: (err: Error) => void, timeoutInMs?: number) => NodeJS.Timeout | number;
2
+ /**
3
+ * @internal
4
+ * @param destroyResponseBodyOnTimeout - set by the service default. On timeout the response
5
+ * body is destroyed with the TimeoutError, and the timeout stays armed through the body.
6
+ */
7
+ export declare const setSocketTimeout: (request: ClientRequest, reject: (err: Error) => void, timeoutInMs?: number, destroyResponseBodyOnTimeout?: boolean) => NodeJS.Timeout | number;
@@ -0,0 +1,4 @@
1
+ /**
2
+ * @internal
3
+ */
4
+ export declare const resolveDefaultSocketTimeout: (config: unknown) => number | undefined;
@@ -1,2 +1,7 @@
1
1
  import { ClientRequest } from "node:http";
2
- export declare const setSocketTimeout: (request: ClientRequest, reject: (err: Error) => void, timeoutInMs?: number) => NodeJS.Timeout | number;
2
+ /**
3
+ * @internal
4
+ * @param destroyResponseBodyOnTimeout - set by the service default. On timeout the response
5
+ * body is destroyed with the TimeoutError, and the timeout stays armed through the body.
6
+ */
7
+ export declare const setSocketTimeout: (request: ClientRequest, reject: (err: Error) => void, timeoutInMs?: number, destroyResponseBodyOnTimeout?: boolean) => NodeJS.Timeout | number;
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@smithy/node-http-handler",
3
- "version": "4.12.1",
3
+ "version": "4.13.0",
4
4
  "description": "Provides a way to make requests",
5
5
  "homepage": "https://github.com/smithy-lang/smithy-typescript/tree/main/packages/node-http-handler",
6
6
  "license": "Apache-2.0",
@@ -39,8 +39,8 @@
39
39
  "test:watch": "yarn g:vitest watch"
40
40
  },
41
41
  "dependencies": {
42
- "@smithy/core": "^3.33.3",
43
- "@smithy/types": "^4.18.0",
42
+ "@smithy/core": "^3.37.0",
43
+ "@smithy/types": "^4.19.0",
44
44
  "tslib": "^2.6.2"
45
45
  },
46
46
  "devDependencies": {
package/package.json CHANGED
@@ -110,7 +110,7 @@
110
110
  "constructs": "^10.0.5"
111
111
  },
112
112
  "dependencies": {
113
- "@aws-sdk/client-codedeploy": "^3.1149.0",
113
+ "@aws-sdk/client-codedeploy": "^3.1156.0",
114
114
  "jmespath": "^0.16.0"
115
115
  },
116
116
  "bundledDependencies": [
@@ -128,7 +128,7 @@
128
128
  "publishConfig": {
129
129
  "access": "public"
130
130
  },
131
- "version": "0.0.460",
131
+ "version": "0.0.462",
132
132
  "jest": {
133
133
  "coverageProvider": "v8",
134
134
  "testMatch": [
@@ -1,7 +0,0 @@
1
- import type { CodecSettings } from "@smithy/types";
2
- /**
3
- * @public
4
- */
5
- export type JsonSettings = CodecSettings & {
6
- jsonName: boolean;
7
- };
@@ -1,4 +0,0 @@
1
- import { CodecSettings } from "@smithy/types";
2
- export type JsonSettings = CodecSettings & {
3
- jsonName: boolean;
4
- };
@@ -1,13 +0,0 @@
1
- import { DocumentType, Schema, ShapeDeserializer } from "@smithy/types";
2
- import { SerdeContextConfig } from "../../ConfigurableSerdeContext";
3
- import { JsonSettings } from "./JsonSettings";
4
- export declare class JsonShapeDeserializer
5
- extends SerdeContextConfig
6
- implements ShapeDeserializer<string>
7
- {
8
- readonly settings: JsonSettings;
9
- constructor(settings: JsonSettings);
10
- read(schema: Schema, data: string | Uint8Array | unknown): Promise<any>;
11
- readObject(schema: Schema, data: DocumentType): any;
12
- protected _read(schema: Schema, value: unknown): any;
13
- }
@@ -1,18 +0,0 @@
1
- import { NormalizedSchema } from "@smithy/core/schema";
2
- import { Schema, ShapeSerializer } from "@smithy/types";
3
- import { SerdeContextConfig } from "../../ConfigurableSerdeContext";
4
- import { JsonSettings } from "./JsonSettings";
5
- export declare class JsonShapeSerializer
6
- extends SerdeContextConfig
7
- implements ShapeSerializer<string>
8
- {
9
- readonly settings: JsonSettings;
10
- protected buffer: any;
11
- protected useReplacer: boolean;
12
- protected rootSchema: NormalizedSchema | undefined;
13
- constructor(settings: JsonSettings);
14
- write(schema: Schema, value: unknown): void;
15
- flush(): string;
16
- writeDiscriminatedDocument(schema: Schema, value: unknown): void;
17
- protected _write(schema: Schema, value: unknown, container?: NormalizedSchema): any;
18
- }
@@ -1,27 +0,0 @@
1
- export declare class JsonBytesStringAdapter extends Uint8Array {
2
- private string;
3
- static allocUnsafe(bytes: number): JsonBytesStringAdapter;
4
- toString(): string;
5
- valueOf(): any;
6
- includes(searchString: string | number, position?: number): boolean;
7
- indexOf(searchString: string | number, position?: number): number;
8
- lastIndexOf(searchString: string | number, position?: number): number;
9
- startsWith(searchString: string, position?: number): boolean;
10
- endsWith(searchString: string, endPosition?: number): boolean;
11
- match(regexp: string | RegExp): RegExpMatchArray | null;
12
- replace(searchValue: string | RegExp, replaceValue: string): string;
13
- search(regexp: string | RegExp): number;
14
- split(separator: string | RegExp, limit?: number): string[];
15
- substring(start: number, end?: number): string;
16
- trim(): string;
17
- trimStart(): string;
18
- trimEnd(): string;
19
- charAt(pos: number): string;
20
- charCodeAt(index: number): number;
21
- padStart(maxLength: number, fillString?: string): string;
22
- padEnd(maxLength: number, fillString?: string): string;
23
- repeat(count: number): string;
24
- toUpperCase(): string;
25
- toLowerCase(): string;
26
- private s;
27
- }
@@ -1,15 +0,0 @@
1
- import { DocumentType, Schema, ShapeDeserializer } from "@smithy/types";
2
- import { SerdeContextConfig } from "../../ConfigurableSerdeContext";
3
- import { JsonSettings } from "../JsonSettings";
4
- export declare class JsonShapeDeserializer2
5
- extends SerdeContextConfig
6
- implements ShapeDeserializer<string>
7
- {
8
- readonly settings: JsonSettings;
9
- constructor(settings: JsonSettings);
10
- read(schema: Schema, data: string | Uint8Array | unknown): Promise<any>;
11
- readObject(schema: Schema, data: DocumentType): any;
12
- protected _read(schema: Schema, value: unknown): any;
13
- private _readStruct;
14
- private needsTransform;
15
- }
@@ -1,39 +0,0 @@
1
- import { NormalizedSchema } from "@smithy/core/schema";
2
- import { Schema, ShapeSerializer } from "@smithy/types";
3
- import { SerdeContextConfig } from "../../ConfigurableSerdeContext";
4
- import { JsonSettings } from "../JsonSettings";
5
- export declare class JsonShapeSerializer2
6
- extends SerdeContextConfig
7
- implements ShapeSerializer<Uint8Array>
8
- {
9
- readonly settings: JsonSettings;
10
- private json;
11
- private i;
12
- private rootSchema;
13
- private rawValue;
14
- private passthrough;
15
- constructor(settings: JsonSettings);
16
- write(schema: Schema, value: unknown): void;
17
- writeDiscriminatedDocument(schema: Schema, value: unknown): void;
18
- flush(): Uint8Array;
19
- protected ensure(byteCount: number): void;
20
- protected writeAscii(s: string): void;
21
- protected writeAsciiQuoted(s: string): void;
22
- protected writeJsonString(s: string): void;
23
- protected writeUnicodeEscape(code: number): void;
24
- protected static readonly B64: Uint8Array;
25
- protected writeBase64(data: Uint8Array): void;
26
- protected writeValue(
27
- schema: Schema,
28
- value: unknown,
29
- container: NormalizedSchema | undefined,
30
- ): void;
31
- protected writeStruct(ns: NormalizedSchema, value: Record<string, unknown>): void;
32
- protected writeList(ns: NormalizedSchema, value: unknown[], isDocument?: boolean): void;
33
- protected writeMap(
34
- ns: NormalizedSchema,
35
- value: Record<string, unknown>,
36
- isDocument?: boolean,
37
- ): void;
38
- protected writeTimestamp(ns: NormalizedSchema, value: Date): void;
39
- }
@@ -1,7 +0,0 @@
1
- export declare class JsonReplacer {
2
- private readonly values;
3
- private counter;
4
- private stage;
5
- createReplacer(): (key: string, value: unknown) => unknown;
6
- replaceInJson(json: string): string;
7
- }
@@ -1,7 +0,0 @@
1
- export declare function jsonReviver(
2
- key: string,
3
- value: any,
4
- context?: {
5
- source?: string;
6
- },
7
- ): any;
@@ -1,2 +0,0 @@
1
- import { Schema } from "@smithy/types";
2
- export declare function needsReviver(schema: Schema): boolean;
@@ -1,14 +0,0 @@
1
- import { HttpResponse, Schema, SerdeFunctions } from "@smithy/types";
2
- export declare function parseJsonBody(streamBody: any, context: SerdeFunctions): Promise<any>;
3
- export declare function parseJsonBody(
4
- streamBody: any,
5
- context: SerdeFunctions,
6
- schema: Schema,
7
- ): Promise<any>;
8
- export declare const parseJsonErrorBody: (errorBody: any, context: SerdeFunctions) => Promise<any>;
9
- export declare const loadRestJsonErrorCode: (output: HttpResponse, data: any) => string | undefined;
10
- export declare const loadJsonRpcErrorCode: (
11
- output: HttpResponse,
12
- data: any,
13
- queryCompat?: boolean,
14
- ) => string | undefined;