@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
@@ -17,6 +17,7 @@ const {
17
17
  InformationalError,
18
18
  BodyTimeoutError,
19
19
  HTTPParserError,
20
+ WebAssemblyNotSupportedError,
20
21
  ResponseExceededMaxSizeError
21
22
  } = require('../core/errors.js')
22
23
  const {
@@ -51,10 +52,15 @@ const {
51
52
  kOnError,
52
53
  kResume,
53
54
  kHTTPContext,
54
- kClosed
55
+ kClosed,
56
+ kUseMilo
55
57
  } = require('../core/symbols.js')
56
58
 
57
59
  const constants = require('../llhttp/constants.js')
60
+ // Node.js core bundles only llhttp; experimental Milo remains available in npm builds.
61
+ const { H1Parser, getMiloEnabled } = typeof esbuildDetection === 'undefined'
62
+ ? require('./parser-h1.js')
63
+ : {}
58
64
  const EMPTY_BUF = Buffer.alloc(0)
59
65
  const FastBuffer = Buffer[Symbol.species]
60
66
  const removeAllListeners = util.removeAllListeners
@@ -66,12 +72,23 @@ const kTypeOfService = Symbol('kTypeOfService')
66
72
  let extractBody
67
73
 
68
74
  function lazyllhttp () {
75
+ // Check only when HTTP/1 needs the parser, so other APIs remain usable without WASM.
76
+ if (typeof WebAssembly === 'undefined') {
77
+ throw new WebAssemblyNotSupportedError()
78
+ }
79
+
69
80
  const llhttpWasmData = process.env.JEST_WORKER_ID ? require('../llhttp/llhttp-wasm.js') : undefined
70
81
 
71
82
  let mod
72
83
 
73
- // We disable wasm SIMD on ppc64 as it seems to be broken on Power 9 architectures.
74
- let useWasmSIMD = process.arch !== 'ppc64'
84
+ // We disable wasm SIMD on older versions of Node.js on ppc64 that are broken on Power >=9 architectures.
85
+ let useWasmSIMD = true
86
+ if (process.arch === 'ppc64') {
87
+ const [major, minor] = process.versions.node.split('.').map(n => parseInt(n, 10))
88
+ if (major < 24 || (major === 24 && minor < 12)) {
89
+ useWasmSIMD = false
90
+ }
91
+ }
75
92
  // The Env Variable UNDICI_NO_WASM_SIMD allows explicitly overriding the default behavior
76
93
  if (process.env.UNDICI_NO_WASM_SIMD === '1') {
77
94
  useWasmSIMD = false
@@ -82,8 +99,7 @@ function lazyllhttp () {
82
99
  if (useWasmSIMD) {
83
100
  try {
84
101
  mod = new WebAssembly.Module(require('../llhttp/llhttp_simd-wasm.js'))
85
- } catch {
86
- }
102
+ } catch {}
87
103
  }
88
104
 
89
105
  if (!mod) {
@@ -120,7 +136,7 @@ function lazyllhttp () {
120
136
  * @param {number} p
121
137
  * @returns {number}
122
138
  */
123
- wasm_on_message_begin: (p) => {
139
+ wasm_on_message_begin: p => {
124
140
  assert(currentParser.ptr === p)
125
141
  return currentParser.onMessageBegin()
126
142
  },
@@ -172,11 +188,10 @@ function lazyllhttp () {
172
188
  * @param {number} p
173
189
  * @returns {number}
174
190
  */
175
- wasm_on_message_complete: (p) => {
191
+ wasm_on_message_complete: p => {
176
192
  assert(currentParser.ptr === p)
177
193
  return currentParser.onMessageComplete()
178
194
  }
179
-
180
195
  }
181
196
  })
182
197
  }
@@ -209,10 +224,10 @@ const TIMEOUT_KEEP_ALIVE = 8 | USE_NATIVE_TIMER
209
224
 
210
225
  class Parser {
211
226
  /**
212
- * @param {import('./client.js')} client
213
- * @param {import('net').Socket} socket
214
- * @param {*} llhttp
215
- */
227
+ * @param {import('./client.js')} client
228
+ * @param {import('net').Socket} socket
229
+ * @param {*} llhttp
230
+ */
216
231
  constructor (client, socket, { exports }) {
217
232
  this.llhttp = exports
218
233
  this.ptr = this.llhttp.llhttp_alloc(constants.TYPE.RESPONSE)
@@ -239,7 +254,8 @@ class Parser {
239
254
 
240
255
  this.keepAlive = ''
241
256
  this.contentLength = -1
242
- this.connectionKeepAlive = false
257
+ this.hasTransferEncoding = false
258
+ this.connection = ''
243
259
  this.maxResponseSize = client[kMaxResponseSize]
244
260
  }
245
261
 
@@ -247,10 +263,7 @@ class Parser {
247
263
  // If the existing timer and the new timer are of different timer type
248
264
  // (fast or native) or have different delay, we need to clear the existing
249
265
  // timer and set a new one.
250
- if (
251
- delay !== this.timeoutValue ||
252
- (type & USE_FAST_TIMER) ^ (this.timeoutType & USE_FAST_TIMER)
253
- ) {
266
+ if (delay !== this.timeoutValue || (type & USE_FAST_TIMER) ^ (this.timeoutType & USE_FAST_TIMER)) {
254
267
  // If a timeout is already set, clear it with clearTimeout of the fast
255
268
  // timer implementation, as it can clear fast and native timers.
256
269
  if (this.timeout) {
@@ -435,9 +448,7 @@ class Parser {
435
448
  if (ptr) {
436
449
  const len = new Uint8Array(llhttp.memory.buffer, ptr).indexOf(0)
437
450
  message =
438
- 'Response does not match the HTTP/1.1 protocol (' +
439
- Buffer.from(llhttp.memory.buffer, ptr, len).toString() +
440
- ')'
451
+ 'Response does not match the HTTP/1.1 protocol (' + Buffer.from(llhttp.memory.buffer, ptr, len).toString() + ')'
441
452
  }
442
453
 
443
454
  return new HTTPParserError(message, constants.ERROR[ret], data)
@@ -515,6 +526,7 @@ class Parser {
515
526
  */
516
527
  onHeaderValue (buf) {
517
528
  let len = this.headers.length
529
+ const isContinuation = (len & 1) === 0
518
530
 
519
531
  if ((len & 1) === 1) {
520
532
  this.headers.push(buf)
@@ -527,19 +539,19 @@ class Parser {
527
539
  if (key.length === 10) {
528
540
  const headerName = util.bufferToLowerCasedHeaderName(key)
529
541
  if (headerName === 'keep-alive') {
530
- this.keepAlive += buf.toString()
542
+ this.keepAlive += (isContinuation || this.keepAlive.length === 0 ? '' : ',') + buf.toString()
531
543
  } else if (headerName === 'connection') {
532
- this.connectionKeepAlive =
533
- this.headers[len - 1].length === 10 &&
534
- util.bufferToLowerCasedHeaderName(this.headers[len - 1]) === 'keep-alive'
544
+ this.connection += (isContinuation || this.connection.length === 0 ? '' : ',') + buf.toString()
535
545
  }
536
546
  } else if (key.length === 14 && util.bufferToLowerCasedHeaderName(key) === 'content-length') {
537
547
  if (this.contentLength === -1) {
538
548
  this.contentLength = 0
539
549
  }
540
550
  for (let i = 0; i < buf.length; i++) {
541
- this.contentLength = (this.contentLength * 10) + (buf[i] - 0x30)
551
+ this.contentLength = this.contentLength * 10 + (buf[i] - 0x30)
542
552
  }
553
+ } else if (key.length === 17 && util.bufferToLowerCasedHeaderName(key) === 'transfer-encoding') {
554
+ this.hasTransferEncoding = true
543
555
  }
544
556
 
545
557
  this.trackHeader(buf.length)
@@ -561,7 +573,7 @@ class Parser {
561
573
  * @param {Buffer} head
562
574
  */
563
575
  onUpgrade (head) {
564
- const { upgrade, client, socket, headers, statusCode } = this
576
+ const { upgrade, client, socket, headers, statusCode, statusText } = this
565
577
 
566
578
  assert(upgrade)
567
579
  assert(client[kSocket] === socket)
@@ -596,8 +608,9 @@ class Parser {
596
608
  client.emit('disconnect', client[kUrl], [client], new InformationalError('upgrade'))
597
609
 
598
610
  try {
599
- request.onRequestUpgrade(statusCode, headers, socket)
611
+ request.onRequestUpgrade(statusCode, headers, socket, statusText)
600
612
  } catch (err) {
613
+ util.errorRequest(client, request, err)
601
614
  util.destroy(socket, err)
602
615
  }
603
616
 
@@ -645,16 +658,27 @@ class Parser {
645
658
  assert(this.timeoutType === TIMEOUT_HEADERS)
646
659
 
647
660
  this.statusCode = statusCode
648
- this.shouldKeepAlive = (
661
+ this.shouldKeepAlive =
649
662
  shouldKeepAlive ||
650
663
  // Override llhttp value which does not allow keepAlive for HEAD.
651
- (request.method === 'HEAD' && !socket[kReset] && this.connectionKeepAlive)
652
- )
664
+ (request.method === 'HEAD' && !socket[kReset] &&
665
+ /(?:^|,)[\t ]*keep-alive[\t ]*(?:,|$)/i.test(this.connection) &&
666
+ !/(?:^|,)[\t ]*close[\t ]*(?:,|$)/i.test(this.connection))
667
+
668
+ // Responses to HEAD and 204/304 responses never carry content
669
+ if (request.method === 'HEAD' || statusCode === 204 || statusCode === 304) {
670
+ // A non-zero Content-Length or Transfer-Encoding on a 204/304 means the
671
+ // server may also have sent content inappropriately, which would then be
672
+ // parsed as the next response on this connection. Accept it, but do not
673
+ // reuse the connection. HEAD requests are fine tho.
674
+ if (request.method !== 'HEAD' && (this.contentLength > 0 || this.hasTransferEncoding)) {
675
+ this.shouldKeepAlive = false
676
+ }
677
+ this.contentLength = -1
678
+ }
653
679
 
654
680
  if (this.statusCode >= 200) {
655
- const bodyTimeout = request.bodyTimeout != null
656
- ? request.bodyTimeout
657
- : client[kBodyTimeout]
681
+ const bodyTimeout = request.bodyTimeout != null ? request.bodyTimeout : client[kBodyTimeout]
658
682
  this.setTimeout(bodyTimeout, TIMEOUT_BODY)
659
683
  } else if (this.timeout) {
660
684
  if (this.timeout.refresh) {
@@ -682,10 +706,7 @@ class Parser {
682
706
  const keepAliveTimeout = this.keepAlive ? util.parseKeepAliveTimeout(this.keepAlive) : null
683
707
 
684
708
  if (keepAliveTimeout != null) {
685
- const timeout = Math.min(
686
- keepAliveTimeout - client[kKeepAliveTimeoutThreshold],
687
- client[kKeepAliveMaxTimeout]
688
- )
709
+ const timeout = Math.min(keepAliveTimeout - client[kKeepAliveTimeoutThreshold], client[kKeepAliveMaxTimeout])
689
710
  if (timeout <= 0) {
690
711
  socket[kReset] = true
691
712
  } else {
@@ -782,8 +803,9 @@ class Parser {
782
803
  this.statusText = ''
783
804
  this.bytesRead = 0
784
805
  this.contentLength = -1
806
+ this.hasTransferEncoding = false
785
807
  this.keepAlive = ''
786
- this.connectionKeepAlive = false
808
+ this.connection = ''
787
809
 
788
810
  this.headers = []
789
811
  this.headersSize = 0
@@ -792,7 +814,7 @@ class Parser {
792
814
  return 0
793
815
  }
794
816
 
795
- if (request.method !== 'HEAD' && contentLength !== -1 && bytesRead !== contentLength) {
817
+ if (contentLength !== -1 && bytesRead !== contentLength) {
796
818
  util.destroy(socket, new ResponseContentLengthMismatchError())
797
819
  return -1
798
820
  }
@@ -880,7 +902,9 @@ function connectH1 (client, socket) {
880
902
  socket[kIdleSocketValidation] = 0
881
903
  socket[kIdleSocketValidationTimeout] = null
882
904
  socket[kSocketUsed] = false
883
- socket[kParser] = new Parser(client, socket, llhttpInstance)
905
+ socket[kParser] = typeof esbuildDetection === 'undefined' && (client[kUseMilo] ?? getMiloEnabled())
906
+ ? new H1Parser(client, socket)
907
+ : new Parser(client, socket, llhttpInstance)
884
908
 
885
909
  util.addListener(socket, 'error', onHttpSocketError)
886
910
  util.addListener(socket, 'readable', onHttpSocketReadable)
@@ -941,8 +965,11 @@ function connectH1 (client, socket) {
941
965
  return true
942
966
  }
943
967
 
944
- if (client[kRunning] > 0 && util.bodyLength(request.body) !== 0 &&
945
- (util.isStream(request.body) || util.isAsyncIterable(request.body) || util.isFormDataLike(request.body))) {
968
+ if (
969
+ client[kRunning] > 0 &&
970
+ util.bodyLength(request.body) !== 0 &&
971
+ (util.isStream(request.body) || util.isAsyncIterable(request.body) || util.isFormDataLike(request.body))
972
+ ) {
946
973
  // Request with stream or iterator body can error while other requests
947
974
  // are inflight and indirectly error those as well.
948
975
  // Ensure this doesn't happen by waiting for inflight
@@ -961,8 +988,6 @@ function connectH1 (client, socket) {
961
988
  }
962
989
 
963
990
  function onHttpSocketError (err) {
964
- assert(err.code !== 'ERR_TLS_CERT_ALTNAME_INVALID')
965
-
966
991
  const parser = this[kParser]
967
992
 
968
993
  // On Mac OS, we get an ECONNRESET even if there is a full body to be forwarded
@@ -1130,9 +1155,7 @@ function resumeH1 (client) {
1130
1155
  } else if (client[kRunning] > 0 && socket[kParser].statusCode < 200) {
1131
1156
  if (socket[kParser].timeoutType !== TIMEOUT_HEADERS) {
1132
1157
  const request = client[kQueue][client[kRunningIdx]]
1133
- const headersTimeout = request.headersTimeout != null
1134
- ? request.headersTimeout
1135
- : client[kHeadersTimeout]
1158
+ const headersTimeout = request.headersTimeout != null ? request.headersTimeout : client[kHeadersTimeout]
1136
1159
  socket[kParser].setTimeout(headersTimeout, TIMEOUT_HEADERS)
1137
1160
  }
1138
1161
  }
@@ -1189,14 +1212,13 @@ function writeH1 (client, request) {
1189
1212
  // servers and corrupt connection state. Do not
1190
1213
  // re-use the connection for further requests.
1191
1214
 
1192
- const expectsPayload = (
1215
+ const expectsPayload =
1193
1216
  method === 'PUT' ||
1194
1217
  method === 'POST' ||
1195
1218
  method === 'PATCH' ||
1196
1219
  method === 'QUERY' ||
1197
1220
  method === 'PROPFIND' ||
1198
1221
  method === 'PROPPATCH'
1199
- )
1200
1222
 
1201
1223
  if (util.isFormDataLike(body)) {
1202
1224
  if (!extractBody) {
@@ -1245,7 +1267,12 @@ function writeH1 (client, request) {
1245
1267
 
1246
1268
  // https://github.com/nodejs/undici/issues/2046
1247
1269
  // A user agent may send a Content-Length header with 0 value, this should be allowed.
1248
- if (shouldSendContentLength(method) && contentLength > 0 && request.contentLength !== null && request.contentLength !== contentLength) {
1270
+ if (
1271
+ shouldSendContentLength(method) &&
1272
+ contentLength > 0 &&
1273
+ request.contentLength !== null &&
1274
+ request.contentLength !== contentLength
1275
+ ) {
1249
1276
  if (client[kStrictContentLength]) {
1250
1277
  util.errorRequest(client, request, new RequestContentLengthMismatchError())
1251
1278
  return false
@@ -1261,7 +1288,7 @@ function writeH1 (client, request) {
1261
1288
  * @param {Error} [err]
1262
1289
  * @returns {void}
1263
1290
  */
1264
- const abort = (err) => {
1291
+ const abort = err => {
1265
1292
  if (request.aborted || request.completed) {
1266
1293
  return
1267
1294
  }
@@ -1446,14 +1473,9 @@ function writeStream (abort, body, client, request, socket, contentLength, heade
1446
1473
 
1447
1474
  assert(socket.destroyed || (socket[kWriting] && client[kRunning] <= 1))
1448
1475
 
1449
- socket
1450
- .off('drain', onDrain)
1451
- .off('error', onFinished)
1476
+ socket.off('drain', onDrain).off('error', onFinished)
1452
1477
 
1453
- body
1454
- .removeListener('data', onData)
1455
- .removeListener('end', onFinished)
1456
- .removeListener('close', onClose)
1478
+ body.removeListener('data', onData).removeListener('end', onFinished).removeListener('close', onClose)
1457
1479
 
1458
1480
  if (!err) {
1459
1481
  try {
@@ -1472,19 +1494,13 @@ function writeStream (abort, body, client, request, socket, contentLength, heade
1472
1494
  }
1473
1495
  }
1474
1496
 
1475
- body
1476
- .on('data', onData)
1477
- .on('end', onFinished)
1478
- .on('error', onFinished)
1479
- .on('close', onClose)
1497
+ body.on('data', onData).on('end', onFinished).on('error', onFinished).on('close', onClose)
1480
1498
 
1481
1499
  if (body.resume) {
1482
1500
  body.resume()
1483
1501
  }
1484
1502
 
1485
- socket
1486
- .on('drain', onDrain)
1487
- .on('error', onFinished)
1503
+ socket.on('drain', onDrain).on('error', onFinished)
1488
1504
 
1489
1505
  if (body.errorEmitted ?? body.errored) {
1490
1506
  setImmediate(onFinished, body.errored)
@@ -1605,19 +1621,18 @@ async function writeIterable (abort, body, client, request, socket, contentLengt
1605
1621
  }
1606
1622
  }
1607
1623
 
1608
- const waitForDrain = () => new Promise((resolve, reject) => {
1609
- assert(callback === null)
1624
+ const waitForDrain = () =>
1625
+ new Promise((resolve, reject) => {
1626
+ assert(callback === null)
1610
1627
 
1611
- if (socket[kError]) {
1612
- reject(socket[kError])
1613
- } else {
1614
- callback = resolve
1615
- }
1616
- })
1628
+ if (socket[kError]) {
1629
+ reject(socket[kError])
1630
+ } else {
1631
+ callback = resolve
1632
+ }
1633
+ })
1617
1634
 
1618
- socket
1619
- .on('close', onDrain)
1620
- .on('drain', onDrain)
1635
+ socket.on('close', onDrain).on('drain', onDrain)
1621
1636
 
1622
1637
  const writer = new AsyncWriter({ abort, socket, request, contentLength, client, expectsPayload, header })
1623
1638
  try {
@@ -1636,9 +1651,7 @@ async function writeIterable (abort, body, client, request, socket, contentLengt
1636
1651
  } catch (err) {
1637
1652
  writer.destroy(err)
1638
1653
  } finally {
1639
- socket
1640
- .off('close', onDrain)
1641
- .off('drain', onDrain)
1654
+ socket.off('close', onDrain).off('drain', onDrain)
1642
1655
  }
1643
1656
  }
1644
1657
 
@@ -1663,10 +1676,27 @@ class AsyncWriter {
1663
1676
  this.expectsPayload = expectsPayload
1664
1677
  this.header = header
1665
1678
  this.abort = abort
1679
+ this.lengthMismatch = false
1666
1680
 
1667
1681
  socket[kWriting] = true
1668
1682
  }
1669
1683
 
1684
+ /**
1685
+ * The body doesn't match the declared content-length and strictContentLength
1686
+ * is off. Warn once, and mark the socket so it isn't reused: on the wire this
1687
+ * request's body no longer ends where the server expects, so anything sent
1688
+ * after it on the same connection would be misread.
1689
+ * @returns {void}
1690
+ */
1691
+ onLengthMismatch () {
1692
+ this.socket[kReset] = true
1693
+
1694
+ if (!this.lengthMismatch) {
1695
+ this.lengthMismatch = true
1696
+ process.emitWarning(new RequestContentLengthMismatchError())
1697
+ }
1698
+ }
1699
+
1670
1700
  /**
1671
1701
  * @param {string|Uint8Array} chunk
1672
1702
  * @returns
@@ -1682,7 +1712,7 @@ class AsyncWriter {
1682
1712
  return false
1683
1713
  }
1684
1714
 
1685
- const len = chunk instanceof Uint8Array ? chunk.byteLength : Buffer.byteLength(chunk)
1715
+ let len = chunk instanceof Uint8Array ? chunk.byteLength : Buffer.byteLength(chunk)
1686
1716
  if (!len) {
1687
1717
  return true
1688
1718
  }
@@ -1693,7 +1723,17 @@ class AsyncWriter {
1693
1723
  throw new RequestContentLengthMismatchError()
1694
1724
  }
1695
1725
 
1696
- process.emitWarning(new RequestContentLengthMismatchError())
1726
+ this.onLengthMismatch()
1727
+
1728
+ // Never write past the declared content-length. The server treats any
1729
+ // extra bytes as the start of the next request, so a body could inject
1730
+ // a request of its own (request smuggling).
1731
+ const remaining = contentLength - bytesWritten
1732
+ if (remaining === 0) {
1733
+ return true
1734
+ }
1735
+ chunk = (typeof chunk === 'string' ? Buffer.from(chunk) : chunk).subarray(0, remaining)
1736
+ len = remaining
1697
1737
  }
1698
1738
 
1699
1739
  socket.cork()
@@ -1768,9 +1808,12 @@ class AsyncWriter {
1768
1808
  if (contentLength !== null && bytesWritten !== contentLength) {
1769
1809
  if (client[kStrictContentLength]) {
1770
1810
  throw new RequestContentLengthMismatchError()
1771
- } else {
1772
- process.emitWarning(new RequestContentLengthMismatchError())
1773
1811
  }
1812
+
1813
+ // The body is shorter than declared, so the server is still waiting for
1814
+ // the rest. Don't let the next request's bytes on this connection be
1815
+ // read as the missing part of this body.
1816
+ this.onLengthMismatch()
1774
1817
  }
1775
1818
 
1776
1819
  if (socket[kParser].timeout && socket[kParser].timeoutType === TIMEOUT_HEADERS) {