@psnext/slingcli 3.5.20261007-3 → 3.5.20261019-1

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 (377) hide show
  1. package/node_modules/@aws-sdk/core/dist-cjs/submodules/httpAuthSchemes/index.js +12 -3
  2. package/node_modules/@aws-sdk/core/dist-cjs/submodules/protocols/index.js +94 -1589
  3. package/node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4Signer.js +12 -3
  4. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/index.js +1 -7
  5. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/AwsJsonRpcProtocol.js +1 -3
  6. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/AwsRestJsonProtocol.js +1 -3
  7. package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/index.d.ts +2 -8
  8. package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/AwsJson1_0Protocol.d.ts +1 -2
  9. package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/AwsJson1_1Protocol.d.ts +1 -2
  10. package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/AwsJsonRpcProtocol.d.ts +2 -3
  11. package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/AwsRestJsonProtocol.d.ts +2 -3
  12. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/index.d.ts +10 -10
  13. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/AwsJson1_0Protocol.d.ts +1 -2
  14. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/AwsJson1_1Protocol.d.ts +1 -2
  15. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/AwsJsonRpcProtocol.d.ts +2 -3
  16. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/AwsRestJsonProtocol.d.ts +2 -3
  17. package/node_modules/@aws-sdk/core/package.json +3 -3
  18. package/node_modules/@aws-sdk/credential-provider-env/package.json +3 -3
  19. package/node_modules/@aws-sdk/credential-provider-http/package.json +3 -3
  20. package/node_modules/@aws-sdk/credential-provider-ini/package.json +10 -10
  21. package/node_modules/@aws-sdk/credential-provider-login/package.json +4 -4
  22. package/node_modules/@aws-sdk/credential-provider-node/package.json +8 -8
  23. package/node_modules/@aws-sdk/credential-provider-process/package.json +3 -3
  24. package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/dist-cjs/index.js +37 -19
  25. package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/dist-es/fromSso.js +37 -19
  26. package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/package.json +4 -4
  27. package/node_modules/@aws-sdk/credential-provider-sso/package.json +5 -5
  28. package/node_modules/@aws-sdk/credential-provider-web-identity/package.json +4 -4
  29. package/node_modules/@aws-sdk/eventstream-handler-node/package.json +2 -2
  30. package/node_modules/@aws-sdk/middleware-eventstream/package.json +2 -2
  31. package/node_modules/@aws-sdk/middleware-websocket/package.json +4 -4
  32. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/cognito-identity/index.js +11 -1
  33. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/signin/index.js +6 -1
  34. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso/index.js +6 -1
  35. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/index.js +13 -1
  36. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/index.js +9 -1
  37. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/cognito-identity/models/CognitoIdentityServiceException.js +1 -0
  38. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/cognito-identity/models/errors.js +9 -0
  39. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/signin/models/SigninServiceException.js +1 -0
  40. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/signin/models/errors.js +4 -0
  41. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso/models/SSOServiceException.js +1 -0
  42. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso/models/errors.js +4 -0
  43. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/models/SSOOIDCServiceException.js +1 -0
  44. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/models/errors.js +11 -0
  45. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/models/STSServiceException.js +1 -0
  46. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/models/errors.js +7 -0
  47. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/cognito-identity/models/CognitoIdentityServiceException.d.ts +1 -0
  48. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/cognito-identity/models/errors.d.ts +9 -0
  49. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/signin/models/SigninServiceException.d.ts +1 -0
  50. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/signin/models/errors.d.ts +4 -0
  51. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso/models/SSOServiceException.d.ts +1 -0
  52. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso/models/errors.d.ts +4 -0
  53. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/models/SSOOIDCServiceException.d.ts +1 -0
  54. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/models/errors.d.ts +11 -0
  55. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/models/STSServiceException.d.ts +1 -0
  56. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/models/errors.d.ts +7 -0
  57. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/cognito-identity/models/CognitoIdentityServiceException.d.ts +1 -0
  58. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/cognito-identity/models/errors.d.ts +9 -0
  59. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/signin/models/SigninServiceException.d.ts +1 -0
  60. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/signin/models/errors.d.ts +4 -0
  61. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso/models/SSOServiceException.d.ts +1 -0
  62. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso/models/errors.d.ts +4 -0
  63. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso-oidc/models/SSOOIDCServiceException.d.ts +1 -0
  64. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso-oidc/models/errors.d.ts +11 -0
  65. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/models/STSServiceException.d.ts +1 -0
  66. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/models/errors.d.ts +7 -0
  67. package/node_modules/@aws-sdk/nested-clients/package.json +4 -4
  68. package/node_modules/@aws-sdk/signature-v4-multi-region/package.json +2 -2
  69. package/node_modules/@earendil-works/pi-ai/dist/providers/opencode-go.js +2 -0
  70. package/node_modules/@earendil-works/pi-codemode/dist/runtime/host.js +21 -86
  71. package/node_modules/@earendil-works/pi-codemode/dist/runtime/prelude-source.js +3 -103
  72. package/node_modules/@earendil-works/pi-codemode/package.json +1 -1
  73. package/node_modules/@earendil-works/pi-coding-agent/dist/bundle/chunks/{chunk-TFS67BSI.js → chunk-23QDZLZG.js} +20 -14
  74. package/node_modules/@earendil-works/pi-coding-agent/dist/bundle/chunks/{chunk-IB6ONE3U.js → chunk-QPFSTNX5.js} +1 -1
  75. package/node_modules/@earendil-works/pi-coding-agent/dist/bundle/chunks/{virtual-modules-P5ROWYIG.js → virtual-modules-GRXGP6ZA.js} +1 -1
  76. package/node_modules/@earendil-works/pi-coding-agent/dist/bundle/cli-runtime.js +1 -1
  77. package/node_modules/@earendil-works/pi-coding-agent/dist/bundle/index.js +1 -1
  78. package/node_modules/@earendil-works/pi-coding-agent/dist/bundle/rpc-entry.js +1 -1
  79. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/docs/docs/api/Agent.md +8 -8
  80. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/docs/docs/api/CacheStore.md +24 -9
  81. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/docs/docs/api/Client.md +11 -6
  82. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/docs/docs/api/DiagnosticsChannel.md +9 -6
  83. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/docs/docs/api/Dispatcher.md +12 -0
  84. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/docs/docs/api/Errors.md +101 -1
  85. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/docs/docs/api/Fetch.md +10 -0
  86. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/docs/docs/api/H2CClient.md +3 -2
  87. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/docs/docs/api/Interceptors.md +17 -9
  88. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/docs/docs/api/Pool.md +5 -6
  89. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/docs/docs/api/RedirectHandler.md +13 -10
  90. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/docs/docs/index.md +22 -13
  91. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/docs/docs/type-map.json +66 -66
  92. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/api/readable.js +1 -2
  93. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/cache/memory-cache-store.js +48 -13
  94. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/cache/sqlite-cache-store.js +83 -5
  95. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/core/connect.js +10 -4
  96. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/core/constants.js +12 -1
  97. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/core/errors.js +38 -1
  98. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/core/request.js +39 -3
  99. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/core/symbols.js +2 -0
  100. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/core/util.js +26 -40
  101. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/dispatcher/agent.js +6 -2
  102. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/dispatcher/client-h1.js +127 -84
  103. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/dispatcher/client-h2.js +97 -21
  104. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/dispatcher/client.js +10 -2
  105. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/dispatcher/dispatcher-base.js +3 -2
  106. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/dispatcher/dispatcher1-wrapper.js +20 -3
  107. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/dispatcher/env-http-proxy-agent.js +21 -6
  108. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/dispatcher/parser-h1.js +1064 -0
  109. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/dispatcher/pool-base.js +117 -19
  110. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/dispatcher/pool.js +99 -13
  111. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/dispatcher/proxy-agent.js +34 -11
  112. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/dispatcher/retry-agent.js +10 -0
  113. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/dispatcher/round-robin-pool.js +15 -5
  114. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/handler/cache-handler.js +153 -15
  115. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/handler/deduplication-handler.js +126 -52
  116. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/handler/redirect-handler.js +31 -6
  117. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/handler/retry-handler.js +116 -24
  118. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/interceptor/cache.js +15 -4
  119. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/interceptor/decompress.js +253 -73
  120. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/interceptor/dns.js +11 -0
  121. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/interceptor/response-error.js +72 -28
  122. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/milo/LICENSE.md +7 -0
  123. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/milo/no-simd.js +1002 -0
  124. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/milo/simd.js +1002 -0
  125. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/mock/mock-agent.js +11 -0
  126. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/mock/snapshot-recorder.js +3 -2
  127. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/mock/snapshot-utils.js +3 -2
  128. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/util/cache.js +11 -5
  129. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/cache/cache.js +17 -8
  130. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/cache/cachestorage.js +11 -5
  131. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/cookies/index.js +19 -7
  132. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/cookies/util.js +21 -2
  133. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/eventsource/eventsource-stream.js +69 -15
  134. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/eventsource/eventsource.js +50 -3
  135. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/fetch/body.js +69 -53
  136. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/fetch/data-url.js +6 -6
  137. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/fetch/formdata-parser.js +12 -4
  138. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/fetch/formdata.js +30 -36
  139. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/fetch/headers.js +36 -33
  140. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/fetch/index.js +54 -29
  141. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/fetch/request.js +74 -79
  142. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/fetch/response.js +43 -44
  143. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/fetch/util.js +7 -7
  144. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/infra/index.js +16 -1
  145. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/subresource-integrity/subresource-integrity.js +5 -5
  146. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/webidl/index.js +2 -14
  147. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/websocket/connection.js +33 -12
  148. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/websocket/events.js +43 -26
  149. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/websocket/receiver.js +27 -4
  150. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/websocket/stream/websocketerror.js +13 -10
  151. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/websocket/stream/websocketstream.js +19 -4
  152. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/websocket/websocket.js +44 -41
  153. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/package.json +7 -5
  154. package/node_modules/@earendil-works/pi-coding-agent/package.json +2 -2
  155. package/node_modules/@hono/node-server/README.md +2 -0
  156. package/node_modules/@hono/node-server/dist/index.cjs +1 -1
  157. package/node_modules/@hono/node-server/dist/index.mjs +1 -1
  158. package/node_modules/@hono/node-server/dist/serve-static.cjs +2 -1
  159. package/node_modules/@hono/node-server/dist/serve-static.mjs +2 -1
  160. package/node_modules/@hono/node-server/package.json +2 -2
  161. package/node_modules/@smithy/core/dist-cjs/submodules/endpoints/index.browser.js +2 -1
  162. package/node_modules/@smithy/core/dist-cjs/submodules/endpoints/index.js +2 -1
  163. package/node_modules/@smithy/core/dist-cjs/submodules/protocols/index.js +1695 -3
  164. package/node_modules/@smithy/core/dist-es/submodules/endpoints/util-endpoints/cache/EndpointCache.js +2 -1
  165. package/node_modules/@smithy/core/dist-es/submodules/protocols/ConfigurableSerdeContext.js +6 -0
  166. package/node_modules/@smithy/core/dist-es/submodules/protocols/UnionSerde.js +26 -0
  167. package/node_modules/@smithy/core/dist-es/submodules/protocols/common.js +3 -0
  168. package/node_modules/@smithy/core/dist-es/submodules/protocols/index.js +8 -0
  169. package/node_modules/@smithy/core/dist-es/submodules/protocols/json/SmithyRpcV2JsonProtocol.js +102 -0
  170. package/node_modules/{@aws-sdk → @smithy}/core/dist-es/submodules/protocols/json/codec-v1/JsonShapeDeserializer.js +8 -1
  171. package/node_modules/{@aws-sdk → @smithy}/core/dist-es/submodules/protocols/json/codec-v1/JsonShapeSerializer.js +8 -1
  172. package/node_modules/{@aws-sdk → @smithy}/core/dist-es/submodules/protocols/json/codec-v2/JsonShapeDeserializer2.js +13 -2
  173. package/node_modules/{@aws-sdk → @smithy}/core/dist-es/submodules/protocols/json/codec-v2/JsonShapeSerializer2.js +11 -1
  174. package/node_modules/{@aws-sdk → @smithy}/core/dist-es/submodules/protocols/json/parseJsonBody.js +16 -1
  175. package/node_modules/@smithy/core/dist-es/submodules/protocols/writeKey.js +3 -0
  176. package/node_modules/@smithy/core/dist-types/submodules/protocols/ConfigurableSerdeContext.d.ts +8 -0
  177. package/node_modules/@smithy/core/dist-types/submodules/protocols/UnionSerde.d.ts +24 -0
  178. package/node_modules/@smithy/core/dist-types/submodules/protocols/common.d.ts +2 -0
  179. package/node_modules/@smithy/core/dist-types/submodules/protocols/index.d.ts +9 -0
  180. package/node_modules/@smithy/core/dist-types/submodules/protocols/json/JsonSettings.d.ts +13 -0
  181. package/node_modules/@smithy/core/dist-types/submodules/protocols/json/SmithyRpcV2JsonProtocol.d.ts +28 -0
  182. package/node_modules/{@aws-sdk → @smithy}/core/dist-types/submodules/protocols/json/parseJsonBody.d.ts +16 -0
  183. package/node_modules/@smithy/core/dist-types/submodules/protocols/writeKey.d.ts +4 -0
  184. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/ConfigurableSerdeContext.d.ts +8 -0
  185. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/UnionSerde.d.ts +24 -0
  186. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/common.d.ts +2 -0
  187. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/index.d.ts +9 -0
  188. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/json/JsonSettings.d.ts +13 -0
  189. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/json/SmithyRpcV2JsonProtocol.d.ts +28 -0
  190. package/node_modules/{@aws-sdk → @smithy}/core/dist-types/ts3.4/submodules/protocols/json/codec-v1/JsonCodec.d.ts +15 -11
  191. 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
  192. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/json/codec-v1/JsonShapeDeserializer.d.ts +14 -0
  193. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/json/codec-v1/JsonShapeSerializer.d.ts +29 -0
  194. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/json/codec-v2/JsonBytesStringAdapter.d.ts +51 -0
  195. package/node_modules/{@aws-sdk → @smithy}/core/dist-types/ts3.4/submodules/protocols/json/codec-v2/JsonCodec2.d.ts +13 -9
  196. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/json/codec-v2/JsonShapeDeserializer2.d.ts +30 -0
  197. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/json/codec-v2/JsonShapeSerializer2.d.ts +60 -0
  198. package/node_modules/{@aws-sdk → @smithy}/core/dist-types/ts3.4/submodules/protocols/json/detectBufferParsing.d.ts +1 -1
  199. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/json/jsonReplacer.d.ts +21 -0
  200. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/json/jsonReviver.d.ts +15 -0
  201. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/json/needsReviver.d.ts +11 -0
  202. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/json/parseJsonBody.d.ts +38 -0
  203. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/writeKey.d.ts +4 -0
  204. package/node_modules/@smithy/core/package.json +2 -1
  205. package/node_modules/@types/node/README.md +1 -1
  206. package/node_modules/@types/node/package.json +2 -2
  207. package/node_modules/@types/node/util.d.ts +6 -3
  208. package/node_modules/content-disposition/README.md +105 -35
  209. package/node_modules/content-disposition/dist/index.d.ts +72 -0
  210. package/node_modules/content-disposition/dist/index.js +388 -0
  211. package/node_modules/content-disposition/dist/index.js.map +1 -0
  212. package/node_modules/content-disposition/package.json +31 -19
  213. package/node_modules/express/Readme.md +15 -9
  214. package/node_modules/express/lib/application.js +2 -2
  215. package/node_modules/express/lib/request.js +32 -19
  216. package/node_modules/express/lib/response.js +27 -30
  217. package/node_modules/express/node_modules/content-type/LICENSE +22 -0
  218. package/node_modules/express/node_modules/content-type/README.md +71 -0
  219. package/node_modules/express/node_modules/content-type/dist/index.d.ts +46 -0
  220. package/node_modules/express/node_modules/content-type/dist/index.js +176 -0
  221. package/node_modules/express/node_modules/content-type/dist/index.js.map +1 -0
  222. package/node_modules/express/node_modules/content-type/package.json +52 -0
  223. package/node_modules/express/package.json +10 -10
  224. package/node_modules/fast-uri/.github/workflows/release.yml +35 -0
  225. package/node_modules/fast-uri/README.md +8 -0
  226. package/node_modules/fast-uri/index.js +98 -18
  227. package/node_modules/fast-uri/lib/utils.js +52 -0
  228. package/node_modules/fast-uri/package.json +1 -1
  229. package/node_modules/fast-uri/test/host-delimiter-security.test.js +94 -0
  230. package/node_modules/fast-uri/test/relative-normalization-security.test.js +156 -0
  231. package/node_modules/fast-uri/test/reserved-path-normalization.test.js +32 -4
  232. package/node_modules/fast-uri/test/scheme-validation.test.js +53 -14
  233. package/node_modules/ip-address/README.md +70 -70
  234. package/node_modules/ip-address/dist/ipv6.js +7 -4
  235. package/node_modules/ip-address/dist/ipv6.js.map +1 -1
  236. package/node_modules/ip-address/dist/v6/constants.d.ts +3 -0
  237. package/node_modules/ip-address/dist/v6/constants.js +3 -0
  238. package/node_modules/ip-address/dist/v6/constants.js.map +1 -1
  239. package/node_modules/ip-address/package.json +2 -1
  240. package/node_modules/jose/README.md +2 -2
  241. package/node_modules/jose/dist/types/jwe/compact/decrypt.d.ts +5 -4
  242. package/node_modules/jose/dist/types/jwe/compact/encrypt.d.ts +4 -4
  243. package/node_modules/jose/dist/types/jwe/flattened/decrypt.d.ts +5 -4
  244. package/node_modules/jose/dist/types/jwe/flattened/encrypt.d.ts +5 -5
  245. package/node_modules/jose/dist/types/jwe/general/decrypt.d.ts +5 -4
  246. package/node_modules/jose/dist/types/jwe/general/encrypt.d.ts +5 -5
  247. package/node_modules/jose/dist/types/jws/compact/sign.d.ts +5 -4
  248. package/node_modules/jose/dist/types/jws/compact/verify.d.ts +5 -5
  249. package/node_modules/jose/dist/types/jws/flattened/sign.d.ts +5 -4
  250. package/node_modules/jose/dist/types/jws/flattened/verify.d.ts +6 -5
  251. package/node_modules/jose/dist/types/jws/general/sign.d.ts +9 -6
  252. package/node_modules/jose/dist/types/jws/general/verify.d.ts +7 -5
  253. package/node_modules/jose/dist/types/jwt/decrypt.d.ts +7 -6
  254. package/node_modules/jose/dist/types/jwt/encrypt.d.ts +1 -1
  255. package/node_modules/jose/dist/types/jwt/sign.d.ts +1 -1
  256. package/node_modules/jose/dist/types/jwt/unsecured.d.ts +1 -1
  257. package/node_modules/jose/dist/types/jwt/verify.d.ts +3 -5
  258. package/node_modules/jose/dist/types/key/export.d.ts +1 -1
  259. package/node_modules/jose/dist/types/key/generate_secret.d.ts +1 -1
  260. package/node_modules/jose/dist/types/key/import.d.ts +2 -2
  261. package/node_modules/jose/dist/types/types.d.ts +165 -107
  262. package/node_modules/jose/dist/types/util/decode_jwt.d.ts +2 -2
  263. package/node_modules/jose/dist/types/util/errors.d.ts +1 -1
  264. package/node_modules/jose/dist/webapi/jwe/general/encrypt.js +3 -3
  265. package/node_modules/jose/dist/webapi/jwk/thumbprint.js +8 -8
  266. package/node_modules/jose/dist/webapi/jwks/local.js +2 -1
  267. package/node_modules/jose/dist/webapi/jwks/remote.js +4 -4
  268. package/node_modules/jose/dist/webapi/jws/general/sign.js +3 -3
  269. package/node_modules/jose/dist/webapi/jws/general/verify.js +3 -3
  270. package/node_modules/jose/dist/webapi/jwt/encrypt.js +2 -2
  271. package/node_modules/jose/dist/webapi/jwt/sign.js +2 -2
  272. package/node_modules/jose/dist/webapi/jwt/unsecured.js +3 -3
  273. package/node_modules/jose/dist/webapi/key/generate_secret.js +4 -4
  274. package/node_modules/jose/dist/webapi/lib/asn1.js +2 -2
  275. package/node_modules/jose/dist/webapi/lib/buffer_utils.js +4 -4
  276. package/node_modules/jose/dist/webapi/lib/content_encryption.js +8 -8
  277. package/node_modules/jose/dist/webapi/lib/jwe_decrypt.js +14 -14
  278. package/node_modules/jose/dist/webapi/lib/jwe_encrypt.js +3 -3
  279. package/node_modules/jose/dist/webapi/lib/jws_algorithms.js +2 -2
  280. package/node_modules/jose/dist/webapi/lib/jws_sign.js +11 -11
  281. package/node_modules/jose/dist/webapi/lib/jws_verify.js +19 -16
  282. package/node_modules/jose/dist/webapi/lib/jwt_claims_set.js +44 -43
  283. package/node_modules/jose/dist/webapi/lib/key.js +4 -4
  284. package/node_modules/jose/dist/webapi/lib/key_management.js +17 -17
  285. package/node_modules/jose/dist/webapi/lib/validate.js +10 -10
  286. package/node_modules/jose/dist/webapi/util/decode_jwt.js +12 -12
  287. package/node_modules/jose/dist/webapi/util/decode_protected_header.js +5 -5
  288. package/node_modules/jose/package.json +1 -1
  289. package/node_modules/qs/.github/THREAT_MODEL.md +4 -2
  290. package/node_modules/qs/CHANGELOG.md +38 -14
  291. package/node_modules/qs/README.md +31 -3
  292. package/node_modules/qs/dist/qs.js +20 -20
  293. package/node_modules/qs/lib/parse.js +94 -4
  294. package/node_modules/qs/lib/stringify.js +4 -4
  295. package/node_modules/qs/lib/utils.js +130 -6
  296. package/node_modules/qs/package.json +4 -4
  297. package/node_modules/qs/test/parse.js +174 -0
  298. package/node_modules/qs/test/stringify.js +263 -33
  299. package/node_modules/qs/test/utils.js +184 -0
  300. package/node_modules/undici/docs/docs/api/Client.md +2 -0
  301. package/node_modules/undici/lib/core/connect.js +10 -4
  302. package/node_modules/undici/lib/core/symbols.js +1 -0
  303. package/node_modules/undici/lib/dispatcher/agent.js +6 -2
  304. package/node_modules/undici/lib/dispatcher/client-h1.js +0 -2
  305. package/node_modules/undici/lib/dispatcher/client-h2.js +0 -4
  306. package/node_modules/undici/lib/dispatcher/client.js +3 -2
  307. package/node_modules/undici/lib/dispatcher/dispatcher-base.js +12 -0
  308. package/node_modules/undici/lib/handler/cache-handler.js +48 -0
  309. package/node_modules/undici/lib/handler/deduplication-handler.js +57 -13
  310. package/node_modules/undici/lib/handler/redirect-handler.js +8 -1
  311. package/node_modules/undici/lib/interceptor/decompress.js +15 -5
  312. package/node_modules/undici/lib/web/cookies/index.js +3 -1
  313. package/node_modules/undici/lib/web/cookies/parse.js +138 -137
  314. package/node_modules/undici/lib/web/cookies/util.js +21 -2
  315. package/node_modules/undici/lib/web/eventsource/eventsource-stream.js +90 -9
  316. package/node_modules/undici/lib/web/eventsource/eventsource.js +4 -1
  317. package/node_modules/undici/lib/web/fetch/index.js +3 -3
  318. package/node_modules/undici/lib/web/infra/index.js +14 -0
  319. package/node_modules/undici/lib/web/subresource-integrity/subresource-integrity.js +5 -5
  320. package/node_modules/undici/lib/web/websocket/receiver.js +13 -0
  321. package/node_modules/undici/package.json +1 -1
  322. package/node_modules/undici/types/client.d.ts +14 -0
  323. package/node_modules/zod/package.json +1 -1
  324. package/node_modules/zod/src/v4/classic/tests/array.test.ts +27 -0
  325. package/node_modules/zod/src/v4/classic/tests/map.test.ts +7 -0
  326. package/node_modules/zod/src/v4/classic/tests/set.test.ts +6 -0
  327. package/node_modules/zod/src/v4/core/compile.ts +9 -0
  328. package/node_modules/zod/src/v4/core/schemas.ts +35 -1
  329. package/node_modules/zod/src/v4/core/util.ts +13 -0
  330. package/node_modules/zod/src/v4/core/versions.ts +1 -1
  331. package/node_modules/zod/v4/core/compile.cjs +8 -0
  332. package/node_modules/zod/v4/core/compile.js +8 -0
  333. package/node_modules/zod/v4/core/schemas.cjs +30 -0
  334. package/node_modules/zod/v4/core/schemas.d.cts +3 -1
  335. package/node_modules/zod/v4/core/schemas.d.ts +3 -1
  336. package/node_modules/zod/v4/core/schemas.js +30 -0
  337. package/node_modules/zod/v4/core/util.cjs +15 -0
  338. package/node_modules/zod/v4/core/util.d.cts +2 -0
  339. package/node_modules/zod/v4/core/util.d.ts +2 -0
  340. package/node_modules/zod/v4/core/util.js +14 -0
  341. package/node_modules/zod/v4/core/versions.cjs +1 -1
  342. package/node_modules/zod/v4/core/versions.js +1 -1
  343. package/package.json +5 -4
  344. package/slingshot/index.js +124 -124
  345. package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/codec-v1/JsonSettings.d.ts +0 -7
  346. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/codec-v1/JsonSettings.d.ts +0 -4
  347. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/codec-v1/JsonShapeDeserializer.d.ts +0 -13
  348. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/codec-v1/JsonShapeSerializer.d.ts +0 -18
  349. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/codec-v2/JsonBytesStringAdapter.d.ts +0 -27
  350. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/codec-v2/JsonShapeDeserializer2.d.ts +0 -15
  351. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/codec-v2/JsonShapeSerializer2.d.ts +0 -39
  352. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/jsonReplacer.d.ts +0 -7
  353. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/jsonReviver.d.ts +0 -7
  354. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/needsReviver.d.ts +0 -2
  355. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/parseJsonBody.d.ts +0 -14
  356. package/node_modules/content-disposition/index.js +0 -536
  357. /package/node_modules/{@aws-sdk → @smithy}/core/dist-es/submodules/protocols/json/JsonSettings.js +0 -0
  358. /package/node_modules/{@aws-sdk → @smithy}/core/dist-es/submodules/protocols/json/codec-v1/JsonCodec.js +0 -0
  359. /package/node_modules/{@aws-sdk → @smithy}/core/dist-es/submodules/protocols/json/codec-v1/JsonSettings.js +0 -0
  360. /package/node_modules/{@aws-sdk → @smithy}/core/dist-es/submodules/protocols/json/codec-v2/JsonBytesStringAdapter.js +0 -0
  361. /package/node_modules/{@aws-sdk → @smithy}/core/dist-es/submodules/protocols/json/codec-v2/JsonCodec2.js +0 -0
  362. /package/node_modules/{@aws-sdk → @smithy}/core/dist-es/submodules/protocols/json/detectBufferParsing.js +0 -0
  363. /package/node_modules/{@aws-sdk → @smithy}/core/dist-es/submodules/protocols/json/jsonReplacer.js +0 -0
  364. /package/node_modules/{@aws-sdk → @smithy}/core/dist-es/submodules/protocols/json/jsonReviver.js +0 -0
  365. /package/node_modules/{@aws-sdk → @smithy}/core/dist-es/submodules/protocols/json/needsReviver.js +0 -0
  366. /package/node_modules/{@aws-sdk → @smithy}/core/dist-types/submodules/protocols/json/codec-v1/JsonCodec.d.ts +0 -0
  367. /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
  368. /package/node_modules/{@aws-sdk → @smithy}/core/dist-types/submodules/protocols/json/codec-v1/JsonShapeDeserializer.d.ts +0 -0
  369. /package/node_modules/{@aws-sdk → @smithy}/core/dist-types/submodules/protocols/json/codec-v1/JsonShapeSerializer.d.ts +0 -0
  370. /package/node_modules/{@aws-sdk → @smithy}/core/dist-types/submodules/protocols/json/codec-v2/JsonBytesStringAdapter.d.ts +0 -0
  371. /package/node_modules/{@aws-sdk → @smithy}/core/dist-types/submodules/protocols/json/codec-v2/JsonCodec2.d.ts +0 -0
  372. /package/node_modules/{@aws-sdk → @smithy}/core/dist-types/submodules/protocols/json/codec-v2/JsonShapeDeserializer2.d.ts +0 -0
  373. /package/node_modules/{@aws-sdk → @smithy}/core/dist-types/submodules/protocols/json/codec-v2/JsonShapeSerializer2.d.ts +0 -0
  374. /package/node_modules/{@aws-sdk → @smithy}/core/dist-types/submodules/protocols/json/detectBufferParsing.d.ts +0 -0
  375. /package/node_modules/{@aws-sdk → @smithy}/core/dist-types/submodules/protocols/json/jsonReplacer.d.ts +0 -0
  376. /package/node_modules/{@aws-sdk → @smithy}/core/dist-types/submodules/protocols/json/jsonReviver.d.ts +0 -0
  377. /package/node_modules/{@aws-sdk → @smithy}/core/dist-types/submodules/protocols/json/needsReviver.d.ts +0 -0
@@ -5,6 +5,7 @@ const { pipeline } = require('node:stream')
5
5
  const util = require('../core/util.js')
6
6
  const {
7
7
  RequestContentLengthMismatchError,
8
+ ResponseContentLengthMismatchError,
8
9
  RequestAbortedError,
9
10
  SocketError,
10
11
  InformationalError,
@@ -193,6 +194,11 @@ function canReplayRequest (request) {
193
194
  return body == null || util.isBuffer(body) || util.isBlobLike(body)
194
195
  }
195
196
 
197
+ function hasResponseStarted (request) {
198
+ const state = request[kRequestStream]?.[kRequestStreamState]
199
+ return state?.responseReceived === true
200
+ }
201
+
196
202
  // Count a GOAWAY refusal against the request's replay budget. A peer that
197
203
  // refuses every connection must eventually surface an error to the caller
198
204
  // rather than being retried forever. Kept separate from canReplayRequest so
@@ -406,7 +412,8 @@ function resumeH2 (client) {
406
412
  const session = client[kHTTP2Session]
407
413
 
408
414
  if (socket?.destroyed === false) {
409
- if (client[kSize] === 0 || client[kMaxConcurrentStreams] === 0) {
415
+ // After an upgrade the queue is empty but its stream is still in use, so never unref while a stream is open.
416
+ if (session[kOpenStreams] === 0 && client[kSize] === 0) {
410
417
  unrefH2Session(session)
411
418
  } else {
412
419
  refH2Session(session)
@@ -541,8 +548,14 @@ function applyConnectionWindowSize (connectionWindowSize) {
541
548
  }
542
549
 
543
550
  function onHttp2RemoteSettings (settings) {
544
- // Fallbacks are a safe bet, remote setting will always override
545
- this[kClient][kMaxConcurrentStreams] = settings.maxConcurrentStreams ?? this[kClient][kMaxConcurrentStreams]
551
+ const client = this[kClient]
552
+
553
+ // The configured maxConcurrentStreams (default 100) is the client's own
554
+ // ceiling. The server's SETTINGS_MAX_CONCURRENT_STREAMS can lower it, but
555
+ // must not raise it: a default Node.js server advertises 2^32-1.
556
+ const localMaxConcurrentStreams = client[kHTTP2Options].maxConcurrentStreams
557
+ const remoteMaxConcurrentStreams = settings.maxConcurrentStreams ?? client[kMaxConcurrentStreams] ?? localMaxConcurrentStreams
558
+ client[kMaxConcurrentStreams] = Math.min(remoteMaxConcurrentStreams, localMaxConcurrentStreams)
546
559
  /**
547
560
  * From RFC-8441
548
561
  * A sender MUST NOT send a SETTINGS_ENABLE_CONNECT_PROTOCOL parameter
@@ -587,8 +600,6 @@ function onHttp2SendPing (session) {
587
600
  }
588
601
 
589
602
  function onHttp2SessionError (err) {
590
- assert(err.code !== 'ERR_TLS_CERT_ALTNAME_INVALID')
591
-
592
603
  this[kSocket][kError] = err
593
604
 
594
605
  if (this[kReceivedGoAway]) {
@@ -640,9 +651,12 @@ function onHttp2SessionGoAway (errorCode, lastStreamID) {
640
651
  const request = client[kQueue][i]
641
652
 
642
653
  if (request != null) {
654
+ // Read before detaching, which drops the stream state.
655
+ const responseStarted = hasResponseStarted(request)
656
+
643
657
  streamsToClose.push(detachRequestStreamForClose(request))
644
658
 
645
- if (canReplayRequest(request) && registerGoAwayRefusal(request)) {
659
+ if (!responseStarted && canReplayRequest(request) && registerGoAwayRefusal(request)) {
646
660
  retriableRequests.push(request)
647
661
  } else {
648
662
  util.errorRequest(client, request, err)
@@ -666,6 +680,10 @@ function onHttp2SessionGoAway (errorCode, lastStreamID) {
666
680
  client[kHTTP2Session] = null
667
681
  }
668
682
 
683
+ if (this[kOpenStreams] === 0) {
684
+ unrefH2Session(this)
685
+ }
686
+
669
687
  clearHttp2IdleTimeout(this)
670
688
  clearNoStreamsTimeout(this)
671
689
 
@@ -747,8 +765,6 @@ function onHttp2SocketClose () {
747
765
  }
748
766
 
749
767
  function onHttp2SocketError (err) {
750
- assert(err.code !== 'ERR_TLS_CERT_ALTNAME_INVALID')
751
-
752
768
  this[kError] = err
753
769
 
754
770
  if (this[kHTTP2Session]?.[kReceivedGoAway]) {
@@ -770,10 +786,12 @@ function noop () {}
770
786
 
771
787
  function closeStreamSession (stream) {
772
788
  const session = stream[kHTTP2Session]
789
+ const client = session[kClient]
773
790
 
774
791
  stream[kHTTP2Session] = null
775
792
  session[kOpenStreams] -= 1
776
- if (session[kOpenStreams] === 0) {
793
+ // A session that received GOAWAY does not need to stay ref'd for queued requests.
794
+ if (session[kOpenStreams] === 0 && (client[kSize] === 0 || session[kReceivedGoAway])) {
777
795
  unrefH2Session(session)
778
796
  setHttp2IdleTimeout(session)
779
797
  }
@@ -832,25 +850,27 @@ function buildRequestHeaders (reqHeaders) {
832
850
  for (let n = 0; n < reqHeaders.length; n += 2) {
833
851
  const key = reqHeaders[n + 0]
834
852
  const val = reqHeaders[n + 1]
835
- const current = headers[key]
853
+ // Reading headers[key] directly resolves `__proto__` through the prototype
854
+ // chain instead of reporting the header as absent.
855
+ const current = Object.hasOwn(headers, key) ? headers[key] : undefined
836
856
 
837
857
  if (key === 'cookie') {
838
858
  if (current != null) {
839
- headers[key] = Array.isArray(current) ? (current.push(val), current) : [current, val]
859
+ util.setHeader(headers, key, Array.isArray(current) ? (current.push(val), current) : [current, val])
840
860
  } else {
841
- headers[key] = val
861
+ util.setHeader(headers, key, val)
842
862
  }
843
863
 
844
864
  continue
845
865
  }
846
866
 
847
867
  if (typeof val === 'string') {
848
- headers[key] = current ? `${current}, ${val}` : val
868
+ util.setHeader(headers, key, current ? `${current}, ${val}` : val)
849
869
  continue
850
870
  }
851
871
 
852
872
  for (let i = 0; i < val.length; i++) {
853
- headers[key] = headers[key] ? `${headers[key]}, ${val[i]}` : val[i]
873
+ util.setHeader(headers, key, Object.hasOwn(headers, key) ? `${headers[key]}, ${val[i]}` : val[i])
854
874
  }
855
875
  }
856
876
 
@@ -931,9 +951,14 @@ function onUpgradeResponse (headers, _flags) {
931
951
  const statusCode = headers[HTTP2_HEADER_STATUS]
932
952
  delete headers[HTTP2_HEADER_STATUS]
933
953
 
934
- request.onRequestUpgrade(statusCode, headers, stream)
954
+ try {
955
+ request.onRequestUpgrade(statusCode, headers, stream)
956
+ } catch (err) {
957
+ state.abort(err)
958
+ return
959
+ }
935
960
 
936
- if (request.aborted || request.completed) {
961
+ if (request.aborted) {
937
962
  return
938
963
  }
939
964
 
@@ -1033,6 +1058,7 @@ function writeH2 (client, request) {
1033
1058
  headersTimeout,
1034
1059
  bodyTimeout,
1035
1060
  requestFinalized: false,
1061
+ responseContentLength: null,
1036
1062
  responseReceived: false,
1037
1063
  bodySent: false,
1038
1064
  pendingEnd: false,
@@ -1328,12 +1354,17 @@ function onData (chunk) {
1328
1354
  return
1329
1355
  }
1330
1356
 
1331
- const { request, maxResponseSize } = state
1357
+ const { request, maxResponseSize, responseContentLength } = state
1332
1358
 
1333
1359
  if (request.aborted || request.completed) {
1334
1360
  return
1335
1361
  }
1336
1362
 
1363
+ if (responseContentLength != null && state.bytesRead + chunk.length > responseContentLength) {
1364
+ state.abort(new ResponseContentLengthMismatchError())
1365
+ return
1366
+ }
1367
+
1337
1368
  if (maxResponseSize > -1 && state.bytesRead + chunk.length > maxResponseSize) {
1338
1369
  // Unlike HTTP/1.1, which destroys the socket because it cannot abandon one
1339
1370
  // response without losing framing, resetting the offending stream leaves
@@ -1345,10 +1376,34 @@ function onData (chunk) {
1345
1376
  state.bytesRead += chunk.length
1346
1377
 
1347
1378
  if (request.onResponseData(chunk) === false) {
1348
- stream.pause()
1379
+ pauseResponseStream(stream, state)
1349
1380
  }
1350
1381
  }
1351
1382
 
1383
+ // The body timeout measures how long the peer takes to send data. While the
1384
+ // consumer applies backpressure the peer can't send (it's out of flow-control
1385
+ // window), and Http2Stream's timer, which counts stream activity, would fire.
1386
+ // Stop it while paused and start a fresh one on resume, like HTTP/1.1, which
1387
+ // ignores the body timeout while its parser is paused.
1388
+ function pauseResponseStream (stream, state) {
1389
+ stream.pause()
1390
+ if (state.bodyTimeout) {
1391
+ stream.setTimeout(0)
1392
+ }
1393
+ }
1394
+
1395
+ // Passed to the handler as its resume callback, bound to the stream.
1396
+ function resumeResponseStream () {
1397
+ const stream = this
1398
+ const state = stream[kRequestStreamState]
1399
+
1400
+ if (state != null && state.bodyTimeout && stream.isPaused()) {
1401
+ stream.setTimeout(state.bodyTimeout)
1402
+ }
1403
+
1404
+ stream.resume()
1405
+ }
1406
+
1352
1407
  function onInterimResponse (headers) {
1353
1408
  const stream = this
1354
1409
  const state = stream[kRequestStreamState]
@@ -1392,11 +1447,20 @@ function onResponse (headers) {
1392
1447
  stream.end()
1393
1448
  }
1394
1449
 
1395
- const statusCode = headers[HTTP2_HEADER_STATUS]
1450
+ const statusCode = Number(headers[HTTP2_HEADER_STATUS])
1396
1451
  delete headers[HTTP2_HEADER_STATUS]
1397
1452
  request.onResponseStarted()
1398
1453
  state.responseReceived = true
1399
1454
 
1455
+ // A Content-Length in HEAD and 304 responses describes the selected
1456
+ // representation rather than DATA on this stream. Successful CONNECT uses
1457
+ // the upgrade path above; all other final responses use Content-Length as
1458
+ // their DATA payload length.
1459
+ if (request.method !== 'HEAD' && statusCode !== 304) {
1460
+ const contentLength = headers[HTTP2_HEADER_CONTENT_LENGTH]
1461
+ state.responseContentLength = contentLength == null ? null : Number(contentLength)
1462
+ }
1463
+
1400
1464
  if (state.headersTimeout || state.bodyTimeout) {
1401
1465
  stream.setTimeout(state.bodyTimeout)
1402
1466
  }
@@ -1414,8 +1478,8 @@ function onResponse (headers) {
1414
1478
  return
1415
1479
  }
1416
1480
 
1417
- if (request.onResponseStart(Number(statusCode), headers, stream.resume.bind(stream), '') === false) {
1418
- stream.pause()
1481
+ if (request.onResponseStart(statusCode, headers, resumeResponseStream.bind(stream), '') === false) {
1482
+ pauseResponseStream(stream, state)
1419
1483
  }
1420
1484
 
1421
1485
  stream.on('data', onData)
@@ -1437,6 +1501,11 @@ function onEnd () {
1437
1501
  // trailers on the state by now, so completing here still delivers them.
1438
1502
  if (state.responseReceived) {
1439
1503
  if (!request.aborted && !request.completed) {
1504
+ if (state.responseContentLength != null && state.bytesRead !== state.responseContentLength) {
1505
+ state.abort(new ResponseContentLengthMismatchError())
1506
+ return
1507
+ }
1508
+
1440
1509
  state.pendingEnd = true
1441
1510
 
1442
1511
  // Complete on 'end': a blocked event loop can keep the stream's 'close'
@@ -1493,6 +1562,13 @@ function onError (err) {
1493
1562
 
1494
1563
  stream.off('error', onError)
1495
1564
 
1565
+ // Node's HTTP/2 implementation can turn an incomplete Content-Length body
1566
+ // into a protocol stream error instead of emitting 'end'. Prefer the
1567
+ // content-length mismatch error when the received byte count proves it.
1568
+ if (state.responseContentLength != null && state.bytesRead !== state.responseContentLength) {
1569
+ err = new ResponseContentLengthMismatchError()
1570
+ }
1571
+
1496
1572
  if (typeof stream.rstCode === 'number' && stream.rstCode !== NGHTTP2_NO_ERROR) {
1497
1573
  err.http2ErrorCode = stream.rstCode
1498
1574
  }
@@ -54,7 +54,8 @@ const {
54
54
  kMaxConcurrentStreams,
55
55
  kHostAuthority,
56
56
  kResume,
57
- kHTTP2Options
57
+ kHTTP2Options,
58
+ kUseMilo
58
59
  } = require('../core/symbols.js')
59
60
  const connectH1 = require('./client-h1.js')
60
61
  const connectH2 = require('./client-h2.js')
@@ -136,6 +137,7 @@ class Client extends DispatcherBase {
136
137
  initialWindowSize,
137
138
  connectionWindowSize,
138
139
  pingInterval,
140
+ useMilo,
139
141
  webSocket,
140
142
  h2Options,
141
143
  eventSource
@@ -238,7 +240,7 @@ class Client extends DispatcherBase {
238
240
  throw new InvalidArgumentError('h2Options.settings.initialWindowSize must be a positive integer, greater than 0')
239
241
  }
240
242
 
241
- if (h2Options.maxConcurrentStreams != null && (!Number.isInteger(h2Options.connectionWindowSize) || h2Options.maxConcurrentStreams < 1)) {
243
+ if (h2Options.maxConcurrentStreams != null && (!Number.isInteger(h2Options.maxConcurrentStreams) || h2Options.maxConcurrentStreams < 1)) {
242
244
  throw new InvalidArgumentError('h2Options.maxConcurrentStreams must be a positive integer, greater than 0')
243
245
  }
244
246
 
@@ -335,6 +337,7 @@ class Client extends DispatcherBase {
335
337
  initialWindowSize: h2Options?.initialWindowSize ?? initialWindowSize ?? 262144
336
338
  }
337
339
  }
340
+ this[kUseMilo] = useMilo
338
341
 
339
342
  // kQueue is built up of 3 sections separated by
340
343
  // the kRunningIdx and kPendingIdx indices.
@@ -700,6 +703,11 @@ function _resume (client, sync) {
700
703
  return
701
704
  }
702
705
 
706
+ if (request.aborted) {
707
+ client[kQueue].splice(client[kPendingIdx], 1)
708
+ continue
709
+ }
710
+
703
711
  if (client[kUrl].protocol === 'https:' && client[kServerName] !== request.servername) {
704
712
  if (client[kRunning] > 0) {
705
713
  return
@@ -8,6 +8,7 @@ const {
8
8
  InvalidArgumentError
9
9
  } = require('../core/errors')
10
10
  const { kDestroy, kClose, kClosed, kDestroyed, kDispatch } = require('../core/symbols')
11
+ const { defaultWebSocketMaxFragments, defaultWebSocketMaxPayloadSize } = require('../core/constants')
11
12
 
12
13
  const kOnDestroyed = Symbol('onDestroyed')
13
14
  const kOnClosed = Symbol('onClosed')
@@ -41,8 +42,8 @@ class DispatcherBase extends Dispatcher {
41
42
  */
42
43
  get webSocketOptions () {
43
44
  return {
44
- maxFragments: this[kWebSocketOptions].maxFragments ?? 131072,
45
- maxPayloadSize: this[kWebSocketOptions].maxPayloadSize ?? 128 * 1024 * 1024 // 128 MB default
45
+ maxFragments: this[kWebSocketOptions].maxFragments ?? defaultWebSocketMaxFragments,
46
+ maxPayloadSize: this[kWebSocketOptions].maxPayloadSize ?? defaultWebSocketMaxPayloadSize
46
47
  }
47
48
  }
48
49
 
@@ -17,12 +17,16 @@ class LegacyHandlerWrapper {
17
17
  }
18
18
 
19
19
  onRequestUpgrade (controller, statusCode, headers, socket) {
20
- const rawHeaders = controller?.rawHeaders ?? toRawHeaders(headers ?? {})
20
+ const rawHeaders = Array.isArray(controller?.rawHeaders)
21
+ ? controller.rawHeaders
22
+ : toRawHeaders(controller?.rawHeaders ?? headers ?? {})
21
23
  this.#handler.onUpgrade?.(statusCode, rawHeaders, socket)
22
24
  }
23
25
 
24
26
  onResponseStart (controller, statusCode, headers, statusMessage) {
25
- const rawHeaders = controller?.rawHeaders ?? toRawHeaders(headers ?? {})
27
+ const rawHeaders = Array.isArray(controller?.rawHeaders)
28
+ ? controller.rawHeaders
29
+ : toRawHeaders(controller?.rawHeaders ?? headers ?? {})
26
30
 
27
31
  if (this.#handler.onHeaders?.(statusCode, rawHeaders, () => controller.resume(), statusMessage) === false) {
28
32
  controller.pause()
@@ -36,7 +40,9 @@ class LegacyHandlerWrapper {
36
40
  }
37
41
 
38
42
  onResponseEnd (controller, trailers) {
39
- const rawTrailers = controller?.rawTrailers ?? toRawHeaders(trailers ?? {})
43
+ const rawTrailers = Array.isArray(controller?.rawTrailers)
44
+ ? controller.rawTrailers
45
+ : toRawHeaders(controller?.rawTrailers ?? trailers ?? {})
40
46
  this.#handler.onComplete?.(rawTrailers)
41
47
  }
42
48
 
@@ -98,6 +104,17 @@ class Dispatcher1Wrapper extends Dispatcher {
98
104
  return this.#dispatcher.dispatch(opts, Dispatcher1Wrapper.wrapHandler(handler))
99
105
  }
100
106
 
107
+ // Older undici versions read WebSocket and EventSource receive limits from
108
+ // the (legacy) global dispatcher, which is this wrapper, so report the
109
+ // wrapped dispatcher's settings.
110
+ get webSocketOptions () {
111
+ return this.#dispatcher.webSocketOptions
112
+ }
113
+
114
+ get eventSourceOptions () {
115
+ return this.#dispatcher.eventSourceOptions
116
+ }
117
+
101
118
  close (...args) {
102
119
  return this.#dispatcher.close(...args)
103
120
  }
@@ -94,17 +94,25 @@ class EnvHttpProxyAgent extends DispatcherBase {
94
94
  if (this.#noProxyEntries.length === 0) {
95
95
  return true // Always proxy if NO_PROXY is not set or empty.
96
96
  }
97
- if (this.#noProxyValue === '*') {
98
- return false // Never proxy if wildcard is set.
99
- }
100
97
 
101
98
  for (let i = 0; i < this.#noProxyEntries.length; i++) {
102
99
  const entry = this.#noProxyEntries[i]
100
+ // A bare `*` entry matches all hosts regardless of its position or the
101
+ // surrounding whitespace (e.g. ` * ` or `none.invalid,*`). If a port is
102
+ // attached (`*:80`) it only bypasses that port.
103
+ if (entry.hostname === '*') {
104
+ if (entry.port && entry.port !== port) {
105
+ continue
106
+ }
107
+ return false // Never proxy if a wildcard entry is present.
108
+ }
103
109
  if (entry.port && entry.port !== port) {
104
110
  continue // Skip if ports don't match.
105
111
  }
106
- // Don't proxy if the hostname is equal with the no_proxy host.
107
- if (hostname === entry.hostname) {
112
+ // Don't proxy if the hostname is equal with the no_proxy host. A
113
+ // `*.example.com` wildcard matches subdomains only, not the apex
114
+ // `example.com`, so exact matches are skipped for wildcard entries.
115
+ if (!entry.wildcard && hostname === entry.hostname) {
108
116
  return false
109
117
  }
110
118
  // Don't proxy if the hostname is the subdomain of the no_proxy host.
@@ -149,10 +157,17 @@ class EnvHttpProxyAgent extends DispatcherBase {
149
157
  port = parsed ? Number.parseInt(parsed[2], 10) : 0
150
158
  }
151
159
 
160
+ // A leading `*` marks a subdomain wildcard (`*.example.com`), distinct
161
+ // from a plain or leading-dot suffix (`example.com` / `.example.com`)
162
+ // which also matches the apex. `*.example.com` must only match
163
+ // subdomains, never the apex `example.com` itself.
164
+ const wildcard = entry.charCodeAt(0) === 42 /* '*' */
165
+
152
166
  noProxyEntries.push({
153
167
  // strip leading dot or asterisk with dot, and any trailing dot
154
168
  hostname: hostname.replace(/^\*?\./, '').replace(/^(.+)\.$/, '$1').toLowerCase(),
155
- port
169
+ port,
170
+ wildcard
156
171
  })
157
172
  }
158
173