@psnext/slingcli 3.5.20261007-2 → 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 (392) hide show
  1. package/bin/sling-startup-output.js +47 -0
  2. package/bin/sling.js +29 -2
  3. package/node_modules/@aws-sdk/core/dist-cjs/submodules/httpAuthSchemes/index.js +12 -3
  4. package/node_modules/@aws-sdk/core/dist-cjs/submodules/protocols/index.js +94 -1589
  5. package/node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4Signer.js +12 -3
  6. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/index.js +1 -7
  7. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/AwsJsonRpcProtocol.js +1 -3
  8. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/AwsRestJsonProtocol.js +1 -3
  9. package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/index.d.ts +2 -8
  10. package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/AwsJson1_0Protocol.d.ts +1 -2
  11. package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/AwsJson1_1Protocol.d.ts +1 -2
  12. package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/AwsJsonRpcProtocol.d.ts +2 -3
  13. package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/AwsRestJsonProtocol.d.ts +2 -3
  14. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/index.d.ts +10 -10
  15. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/AwsJson1_0Protocol.d.ts +1 -2
  16. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/AwsJson1_1Protocol.d.ts +1 -2
  17. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/AwsJsonRpcProtocol.d.ts +2 -3
  18. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/AwsRestJsonProtocol.d.ts +2 -3
  19. package/node_modules/@aws-sdk/core/package.json +3 -3
  20. package/node_modules/@aws-sdk/credential-provider-env/package.json +3 -3
  21. package/node_modules/@aws-sdk/credential-provider-http/package.json +3 -3
  22. package/node_modules/@aws-sdk/credential-provider-ini/package.json +10 -10
  23. package/node_modules/@aws-sdk/credential-provider-login/package.json +4 -4
  24. package/node_modules/@aws-sdk/credential-provider-node/package.json +8 -8
  25. package/node_modules/@aws-sdk/credential-provider-process/package.json +3 -3
  26. package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/dist-cjs/index.js +37 -19
  27. package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/dist-es/fromSso.js +37 -19
  28. package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/package.json +4 -4
  29. package/node_modules/@aws-sdk/credential-provider-sso/package.json +5 -5
  30. package/node_modules/@aws-sdk/credential-provider-web-identity/package.json +4 -4
  31. package/node_modules/@aws-sdk/eventstream-handler-node/package.json +2 -2
  32. package/node_modules/@aws-sdk/middleware-eventstream/package.json +2 -2
  33. package/node_modules/@aws-sdk/middleware-websocket/package.json +4 -4
  34. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/cognito-identity/index.js +11 -1
  35. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/signin/index.js +6 -1
  36. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso/index.js +6 -1
  37. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/index.js +13 -1
  38. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/index.js +9 -1
  39. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/cognito-identity/models/CognitoIdentityServiceException.js +1 -0
  40. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/cognito-identity/models/errors.js +9 -0
  41. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/signin/models/SigninServiceException.js +1 -0
  42. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/signin/models/errors.js +4 -0
  43. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso/models/SSOServiceException.js +1 -0
  44. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso/models/errors.js +4 -0
  45. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/models/SSOOIDCServiceException.js +1 -0
  46. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/models/errors.js +11 -0
  47. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/models/STSServiceException.js +1 -0
  48. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/models/errors.js +7 -0
  49. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/cognito-identity/models/CognitoIdentityServiceException.d.ts +1 -0
  50. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/cognito-identity/models/errors.d.ts +9 -0
  51. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/signin/models/SigninServiceException.d.ts +1 -0
  52. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/signin/models/errors.d.ts +4 -0
  53. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso/models/SSOServiceException.d.ts +1 -0
  54. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso/models/errors.d.ts +4 -0
  55. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/models/SSOOIDCServiceException.d.ts +1 -0
  56. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/models/errors.d.ts +11 -0
  57. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/models/STSServiceException.d.ts +1 -0
  58. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/models/errors.d.ts +7 -0
  59. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/cognito-identity/models/CognitoIdentityServiceException.d.ts +1 -0
  60. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/cognito-identity/models/errors.d.ts +9 -0
  61. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/signin/models/SigninServiceException.d.ts +1 -0
  62. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/signin/models/errors.d.ts +4 -0
  63. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso/models/SSOServiceException.d.ts +1 -0
  64. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso/models/errors.d.ts +4 -0
  65. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso-oidc/models/SSOOIDCServiceException.d.ts +1 -0
  66. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso-oidc/models/errors.d.ts +11 -0
  67. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/models/STSServiceException.d.ts +1 -0
  68. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/models/errors.d.ts +7 -0
  69. package/node_modules/@aws-sdk/nested-clients/package.json +4 -4
  70. package/node_modules/@aws-sdk/signature-v4-multi-region/package.json +2 -2
  71. package/node_modules/@earendil-works/pi-ai/dist/providers/opencode-go.js +2 -0
  72. package/node_modules/@earendil-works/pi-codemode/dist/runtime/host.js +21 -86
  73. package/node_modules/@earendil-works/pi-codemode/dist/runtime/prelude-source.js +3 -103
  74. package/node_modules/@earendil-works/pi-codemode/package.json +1 -1
  75. package/node_modules/@earendil-works/pi-coding-agent/dist/bundle/chunks/{chunk-JPNA2XH6.js → chunk-23QDZLZG.js} +22 -16
  76. package/node_modules/@earendil-works/pi-coding-agent/dist/bundle/chunks/{chunk-4RGLMKVY.js → chunk-QPFSTNX5.js} +1 -1
  77. package/node_modules/@earendil-works/pi-coding-agent/dist/bundle/chunks/{virtual-modules-SXTR3NIO.js → virtual-modules-GRXGP6ZA.js} +1 -1
  78. package/node_modules/@earendil-works/pi-coding-agent/dist/bundle/cli-runtime.js +1 -1
  79. package/node_modules/@earendil-works/pi-coding-agent/dist/bundle/index.js +1 -1
  80. package/node_modules/@earendil-works/pi-coding-agent/dist/bundle/rpc-entry.js +1 -1
  81. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/pi-logo.js +8 -0
  82. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/interactive-mode.js +6 -3
  83. package/node_modules/@earendil-works/pi-coding-agent/docs/mcp.md +1 -0
  84. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/docs/docs/api/Agent.md +8 -8
  85. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/docs/docs/api/CacheStore.md +24 -9
  86. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/docs/docs/api/Client.md +11 -6
  87. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/docs/docs/api/DiagnosticsChannel.md +9 -6
  88. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/docs/docs/api/Dispatcher.md +12 -0
  89. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/docs/docs/api/Errors.md +101 -1
  90. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/docs/docs/api/Fetch.md +10 -0
  91. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/docs/docs/api/H2CClient.md +3 -2
  92. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/docs/docs/api/Interceptors.md +17 -9
  93. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/docs/docs/api/Pool.md +5 -6
  94. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/docs/docs/api/RedirectHandler.md +13 -10
  95. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/docs/docs/index.md +22 -13
  96. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/docs/docs/type-map.json +66 -66
  97. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/api/readable.js +1 -2
  98. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/cache/memory-cache-store.js +48 -13
  99. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/cache/sqlite-cache-store.js +83 -5
  100. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/core/connect.js +10 -4
  101. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/core/constants.js +12 -1
  102. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/core/errors.js +38 -1
  103. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/core/request.js +39 -3
  104. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/core/symbols.js +2 -0
  105. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/core/util.js +26 -40
  106. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/dispatcher/agent.js +6 -2
  107. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/dispatcher/client-h1.js +127 -84
  108. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/dispatcher/client-h2.js +97 -21
  109. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/dispatcher/client.js +10 -2
  110. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/dispatcher/dispatcher-base.js +3 -2
  111. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/dispatcher/dispatcher1-wrapper.js +20 -3
  112. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/dispatcher/env-http-proxy-agent.js +21 -6
  113. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/dispatcher/parser-h1.js +1064 -0
  114. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/dispatcher/pool-base.js +117 -19
  115. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/dispatcher/pool.js +99 -13
  116. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/dispatcher/proxy-agent.js +34 -11
  117. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/dispatcher/retry-agent.js +10 -0
  118. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/dispatcher/round-robin-pool.js +15 -5
  119. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/handler/cache-handler.js +153 -15
  120. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/handler/deduplication-handler.js +126 -52
  121. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/handler/redirect-handler.js +31 -6
  122. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/handler/retry-handler.js +116 -24
  123. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/interceptor/cache.js +15 -4
  124. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/interceptor/decompress.js +253 -73
  125. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/interceptor/dns.js +11 -0
  126. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/interceptor/response-error.js +72 -28
  127. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/milo/LICENSE.md +7 -0
  128. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/milo/no-simd.js +1002 -0
  129. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/milo/simd.js +1002 -0
  130. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/mock/mock-agent.js +11 -0
  131. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/mock/snapshot-recorder.js +3 -2
  132. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/mock/snapshot-utils.js +3 -2
  133. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/util/cache.js +11 -5
  134. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/cache/cache.js +17 -8
  135. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/cache/cachestorage.js +11 -5
  136. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/cookies/index.js +19 -7
  137. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/cookies/util.js +21 -2
  138. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/eventsource/eventsource-stream.js +69 -15
  139. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/eventsource/eventsource.js +50 -3
  140. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/fetch/body.js +69 -53
  141. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/fetch/data-url.js +6 -6
  142. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/fetch/formdata-parser.js +12 -4
  143. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/fetch/formdata.js +30 -36
  144. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/fetch/headers.js +36 -33
  145. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/fetch/index.js +54 -29
  146. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/fetch/request.js +74 -79
  147. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/fetch/response.js +43 -44
  148. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/fetch/util.js +7 -7
  149. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/infra/index.js +16 -1
  150. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/subresource-integrity/subresource-integrity.js +5 -5
  151. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/webidl/index.js +2 -14
  152. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/websocket/connection.js +33 -12
  153. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/websocket/events.js +43 -26
  154. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/websocket/receiver.js +27 -4
  155. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/websocket/stream/websocketerror.js +13 -10
  156. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/websocket/stream/websocketstream.js +19 -4
  157. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/websocket/websocket.js +44 -41
  158. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/package.json +7 -5
  159. package/node_modules/@earendil-works/pi-coding-agent/package.json +2 -2
  160. package/node_modules/@hono/node-server/README.md +2 -0
  161. package/node_modules/@hono/node-server/dist/index.cjs +1 -1
  162. package/node_modules/@hono/node-server/dist/index.mjs +1 -1
  163. package/node_modules/@hono/node-server/dist/serve-static.cjs +2 -1
  164. package/node_modules/@hono/node-server/dist/serve-static.mjs +2 -1
  165. package/node_modules/@hono/node-server/package.json +2 -2
  166. package/node_modules/@smithy/core/dist-cjs/submodules/endpoints/index.browser.js +2 -1
  167. package/node_modules/@smithy/core/dist-cjs/submodules/endpoints/index.js +2 -1
  168. package/node_modules/@smithy/core/dist-cjs/submodules/protocols/index.js +1695 -3
  169. package/node_modules/@smithy/core/dist-es/submodules/endpoints/util-endpoints/cache/EndpointCache.js +2 -1
  170. package/node_modules/@smithy/core/dist-es/submodules/protocols/ConfigurableSerdeContext.js +6 -0
  171. package/node_modules/@smithy/core/dist-es/submodules/protocols/UnionSerde.js +26 -0
  172. package/node_modules/@smithy/core/dist-es/submodules/protocols/common.js +3 -0
  173. package/node_modules/@smithy/core/dist-es/submodules/protocols/index.js +8 -0
  174. package/node_modules/@smithy/core/dist-es/submodules/protocols/json/SmithyRpcV2JsonProtocol.js +102 -0
  175. package/node_modules/{@aws-sdk → @smithy}/core/dist-es/submodules/protocols/json/codec-v1/JsonShapeDeserializer.js +8 -1
  176. package/node_modules/{@aws-sdk → @smithy}/core/dist-es/submodules/protocols/json/codec-v1/JsonShapeSerializer.js +8 -1
  177. package/node_modules/{@aws-sdk → @smithy}/core/dist-es/submodules/protocols/json/codec-v2/JsonShapeDeserializer2.js +13 -2
  178. package/node_modules/{@aws-sdk → @smithy}/core/dist-es/submodules/protocols/json/codec-v2/JsonShapeSerializer2.js +11 -1
  179. package/node_modules/{@aws-sdk → @smithy}/core/dist-es/submodules/protocols/json/parseJsonBody.js +16 -1
  180. package/node_modules/@smithy/core/dist-es/submodules/protocols/writeKey.js +3 -0
  181. package/node_modules/@smithy/core/dist-types/submodules/protocols/ConfigurableSerdeContext.d.ts +8 -0
  182. package/node_modules/@smithy/core/dist-types/submodules/protocols/UnionSerde.d.ts +24 -0
  183. package/node_modules/@smithy/core/dist-types/submodules/protocols/common.d.ts +2 -0
  184. package/node_modules/@smithy/core/dist-types/submodules/protocols/index.d.ts +9 -0
  185. package/node_modules/@smithy/core/dist-types/submodules/protocols/json/JsonSettings.d.ts +13 -0
  186. package/node_modules/@smithy/core/dist-types/submodules/protocols/json/SmithyRpcV2JsonProtocol.d.ts +28 -0
  187. package/node_modules/{@aws-sdk → @smithy}/core/dist-types/submodules/protocols/json/parseJsonBody.d.ts +16 -0
  188. package/node_modules/@smithy/core/dist-types/submodules/protocols/writeKey.d.ts +4 -0
  189. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/ConfigurableSerdeContext.d.ts +8 -0
  190. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/UnionSerde.d.ts +24 -0
  191. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/common.d.ts +2 -0
  192. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/index.d.ts +9 -0
  193. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/json/JsonSettings.d.ts +13 -0
  194. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/json/SmithyRpcV2JsonProtocol.d.ts +28 -0
  195. package/node_modules/{@aws-sdk → @smithy}/core/dist-types/ts3.4/submodules/protocols/json/codec-v1/JsonCodec.d.ts +15 -11
  196. 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
  197. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/json/codec-v1/JsonShapeDeserializer.d.ts +14 -0
  198. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/json/codec-v1/JsonShapeSerializer.d.ts +29 -0
  199. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/json/codec-v2/JsonBytesStringAdapter.d.ts +51 -0
  200. package/node_modules/{@aws-sdk → @smithy}/core/dist-types/ts3.4/submodules/protocols/json/codec-v2/JsonCodec2.d.ts +13 -9
  201. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/json/codec-v2/JsonShapeDeserializer2.d.ts +30 -0
  202. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/json/codec-v2/JsonShapeSerializer2.d.ts +60 -0
  203. package/node_modules/{@aws-sdk → @smithy}/core/dist-types/ts3.4/submodules/protocols/json/detectBufferParsing.d.ts +1 -1
  204. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/json/jsonReplacer.d.ts +21 -0
  205. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/json/jsonReviver.d.ts +15 -0
  206. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/json/needsReviver.d.ts +11 -0
  207. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/json/parseJsonBody.d.ts +38 -0
  208. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/writeKey.d.ts +4 -0
  209. package/node_modules/@smithy/core/package.json +2 -1
  210. package/node_modules/@types/node/README.md +1 -1
  211. package/node_modules/@types/node/package.json +2 -2
  212. package/node_modules/@types/node/util.d.ts +6 -3
  213. package/node_modules/content-disposition/README.md +105 -35
  214. package/node_modules/content-disposition/dist/index.d.ts +72 -0
  215. package/node_modules/content-disposition/dist/index.js +388 -0
  216. package/node_modules/content-disposition/dist/index.js.map +1 -0
  217. package/node_modules/content-disposition/package.json +31 -19
  218. package/node_modules/express/Readme.md +15 -9
  219. package/node_modules/express/lib/application.js +2 -2
  220. package/node_modules/express/lib/request.js +32 -19
  221. package/node_modules/express/lib/response.js +27 -30
  222. package/node_modules/express/node_modules/content-type/LICENSE +22 -0
  223. package/node_modules/express/node_modules/content-type/README.md +71 -0
  224. package/node_modules/express/node_modules/content-type/dist/index.d.ts +46 -0
  225. package/node_modules/express/node_modules/content-type/dist/index.js +176 -0
  226. package/node_modules/express/node_modules/content-type/dist/index.js.map +1 -0
  227. package/node_modules/express/node_modules/content-type/package.json +52 -0
  228. package/node_modules/express/package.json +10 -10
  229. package/node_modules/fast-uri/.github/workflows/release.yml +35 -0
  230. package/node_modules/fast-uri/README.md +8 -0
  231. package/node_modules/fast-uri/index.js +98 -18
  232. package/node_modules/fast-uri/lib/utils.js +52 -0
  233. package/node_modules/fast-uri/package.json +1 -1
  234. package/node_modules/fast-uri/test/host-delimiter-security.test.js +94 -0
  235. package/node_modules/fast-uri/test/relative-normalization-security.test.js +156 -0
  236. package/node_modules/fast-uri/test/reserved-path-normalization.test.js +32 -4
  237. package/node_modules/fast-uri/test/scheme-validation.test.js +53 -14
  238. package/node_modules/ip-address/README.md +70 -70
  239. package/node_modules/ip-address/dist/ipv6.js +7 -4
  240. package/node_modules/ip-address/dist/ipv6.js.map +1 -1
  241. package/node_modules/ip-address/dist/v6/constants.d.ts +3 -0
  242. package/node_modules/ip-address/dist/v6/constants.js +3 -0
  243. package/node_modules/ip-address/dist/v6/constants.js.map +1 -1
  244. package/node_modules/ip-address/package.json +2 -1
  245. package/node_modules/jose/README.md +2 -2
  246. package/node_modules/jose/dist/types/jwe/compact/decrypt.d.ts +5 -4
  247. package/node_modules/jose/dist/types/jwe/compact/encrypt.d.ts +4 -4
  248. package/node_modules/jose/dist/types/jwe/flattened/decrypt.d.ts +5 -4
  249. package/node_modules/jose/dist/types/jwe/flattened/encrypt.d.ts +5 -5
  250. package/node_modules/jose/dist/types/jwe/general/decrypt.d.ts +5 -4
  251. package/node_modules/jose/dist/types/jwe/general/encrypt.d.ts +5 -5
  252. package/node_modules/jose/dist/types/jws/compact/sign.d.ts +5 -4
  253. package/node_modules/jose/dist/types/jws/compact/verify.d.ts +5 -5
  254. package/node_modules/jose/dist/types/jws/flattened/sign.d.ts +5 -4
  255. package/node_modules/jose/dist/types/jws/flattened/verify.d.ts +6 -5
  256. package/node_modules/jose/dist/types/jws/general/sign.d.ts +9 -6
  257. package/node_modules/jose/dist/types/jws/general/verify.d.ts +7 -5
  258. package/node_modules/jose/dist/types/jwt/decrypt.d.ts +7 -6
  259. package/node_modules/jose/dist/types/jwt/encrypt.d.ts +1 -1
  260. package/node_modules/jose/dist/types/jwt/sign.d.ts +1 -1
  261. package/node_modules/jose/dist/types/jwt/unsecured.d.ts +1 -1
  262. package/node_modules/jose/dist/types/jwt/verify.d.ts +3 -5
  263. package/node_modules/jose/dist/types/key/export.d.ts +1 -1
  264. package/node_modules/jose/dist/types/key/generate_secret.d.ts +1 -1
  265. package/node_modules/jose/dist/types/key/import.d.ts +2 -2
  266. package/node_modules/jose/dist/types/types.d.ts +165 -107
  267. package/node_modules/jose/dist/types/util/decode_jwt.d.ts +2 -2
  268. package/node_modules/jose/dist/types/util/errors.d.ts +1 -1
  269. package/node_modules/jose/dist/webapi/jwe/general/encrypt.js +3 -3
  270. package/node_modules/jose/dist/webapi/jwk/thumbprint.js +8 -8
  271. package/node_modules/jose/dist/webapi/jwks/local.js +2 -1
  272. package/node_modules/jose/dist/webapi/jwks/remote.js +4 -4
  273. package/node_modules/jose/dist/webapi/jws/general/sign.js +3 -3
  274. package/node_modules/jose/dist/webapi/jws/general/verify.js +3 -3
  275. package/node_modules/jose/dist/webapi/jwt/encrypt.js +2 -2
  276. package/node_modules/jose/dist/webapi/jwt/sign.js +2 -2
  277. package/node_modules/jose/dist/webapi/jwt/unsecured.js +3 -3
  278. package/node_modules/jose/dist/webapi/key/generate_secret.js +4 -4
  279. package/node_modules/jose/dist/webapi/lib/asn1.js +2 -2
  280. package/node_modules/jose/dist/webapi/lib/buffer_utils.js +4 -4
  281. package/node_modules/jose/dist/webapi/lib/content_encryption.js +8 -8
  282. package/node_modules/jose/dist/webapi/lib/jwe_decrypt.js +14 -14
  283. package/node_modules/jose/dist/webapi/lib/jwe_encrypt.js +3 -3
  284. package/node_modules/jose/dist/webapi/lib/jws_algorithms.js +2 -2
  285. package/node_modules/jose/dist/webapi/lib/jws_sign.js +11 -11
  286. package/node_modules/jose/dist/webapi/lib/jws_verify.js +19 -16
  287. package/node_modules/jose/dist/webapi/lib/jwt_claims_set.js +44 -43
  288. package/node_modules/jose/dist/webapi/lib/key.js +4 -4
  289. package/node_modules/jose/dist/webapi/lib/key_management.js +17 -17
  290. package/node_modules/jose/dist/webapi/lib/validate.js +10 -10
  291. package/node_modules/jose/dist/webapi/util/decode_jwt.js +12 -12
  292. package/node_modules/jose/dist/webapi/util/decode_protected_header.js +5 -5
  293. package/node_modules/jose/package.json +1 -1
  294. package/node_modules/qs/.github/THREAT_MODEL.md +4 -2
  295. package/node_modules/qs/CHANGELOG.md +38 -14
  296. package/node_modules/qs/README.md +31 -3
  297. package/node_modules/qs/dist/qs.js +20 -20
  298. package/node_modules/qs/lib/parse.js +94 -4
  299. package/node_modules/qs/lib/stringify.js +4 -4
  300. package/node_modules/qs/lib/utils.js +130 -6
  301. package/node_modules/qs/package.json +4 -4
  302. package/node_modules/qs/test/parse.js +174 -0
  303. package/node_modules/qs/test/stringify.js +263 -33
  304. package/node_modules/qs/test/utils.js +184 -0
  305. package/node_modules/undici/docs/docs/api/Client.md +2 -0
  306. package/node_modules/undici/lib/core/connect.js +10 -4
  307. package/node_modules/undici/lib/core/symbols.js +1 -0
  308. package/node_modules/undici/lib/dispatcher/agent.js +6 -2
  309. package/node_modules/undici/lib/dispatcher/client-h1.js +0 -2
  310. package/node_modules/undici/lib/dispatcher/client-h2.js +0 -4
  311. package/node_modules/undici/lib/dispatcher/client.js +3 -2
  312. package/node_modules/undici/lib/dispatcher/dispatcher-base.js +12 -0
  313. package/node_modules/undici/lib/handler/cache-handler.js +48 -0
  314. package/node_modules/undici/lib/handler/deduplication-handler.js +57 -13
  315. package/node_modules/undici/lib/handler/redirect-handler.js +8 -1
  316. package/node_modules/undici/lib/interceptor/decompress.js +15 -5
  317. package/node_modules/undici/lib/web/cookies/index.js +3 -1
  318. package/node_modules/undici/lib/web/cookies/parse.js +138 -137
  319. package/node_modules/undici/lib/web/cookies/util.js +21 -2
  320. package/node_modules/undici/lib/web/eventsource/eventsource-stream.js +90 -9
  321. package/node_modules/undici/lib/web/eventsource/eventsource.js +4 -1
  322. package/node_modules/undici/lib/web/fetch/index.js +3 -3
  323. package/node_modules/undici/lib/web/infra/index.js +14 -0
  324. package/node_modules/undici/lib/web/subresource-integrity/subresource-integrity.js +5 -5
  325. package/node_modules/undici/lib/web/websocket/receiver.js +13 -0
  326. package/node_modules/undici/package.json +1 -1
  327. package/node_modules/undici/types/client.d.ts +14 -0
  328. package/node_modules/zod/package.json +1 -1
  329. package/node_modules/zod/src/v4/classic/tests/array.test.ts +27 -0
  330. package/node_modules/zod/src/v4/classic/tests/map.test.ts +7 -0
  331. package/node_modules/zod/src/v4/classic/tests/set.test.ts +6 -0
  332. package/node_modules/zod/src/v4/core/compile.ts +9 -0
  333. package/node_modules/zod/src/v4/core/schemas.ts +35 -1
  334. package/node_modules/zod/src/v4/core/util.ts +13 -0
  335. package/node_modules/zod/src/v4/core/versions.ts +1 -1
  336. package/node_modules/zod/v4/core/compile.cjs +8 -0
  337. package/node_modules/zod/v4/core/compile.js +8 -0
  338. package/node_modules/zod/v4/core/schemas.cjs +30 -0
  339. package/node_modules/zod/v4/core/schemas.d.cts +3 -1
  340. package/node_modules/zod/v4/core/schemas.d.ts +3 -1
  341. package/node_modules/zod/v4/core/schemas.js +30 -0
  342. package/node_modules/zod/v4/core/util.cjs +15 -0
  343. package/node_modules/zod/v4/core/util.d.cts +2 -0
  344. package/node_modules/zod/v4/core/util.d.ts +2 -0
  345. package/node_modules/zod/v4/core/util.js +14 -0
  346. package/node_modules/zod/v4/core/versions.cjs +1 -1
  347. package/node_modules/zod/v4/core/versions.js +1 -1
  348. package/package.json +5 -4
  349. package/slingshot/index.js +214 -214
  350. package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/codec-v1/JsonSettings.d.ts +0 -7
  351. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/codec-v1/JsonSettings.d.ts +0 -4
  352. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/codec-v1/JsonShapeDeserializer.d.ts +0 -13
  353. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/codec-v1/JsonShapeSerializer.d.ts +0 -18
  354. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/codec-v2/JsonBytesStringAdapter.d.ts +0 -27
  355. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/codec-v2/JsonShapeDeserializer2.d.ts +0 -15
  356. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/codec-v2/JsonShapeSerializer2.d.ts +0 -39
  357. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/jsonReplacer.d.ts +0 -7
  358. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/jsonReviver.d.ts +0 -7
  359. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/needsReviver.d.ts +0 -2
  360. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/parseJsonBody.d.ts +0 -14
  361. package/node_modules/@esbuild/linux-x64/README.md +0 -3
  362. package/node_modules/@esbuild/linux-x64/bin/esbuild +0 -0
  363. package/node_modules/@esbuild/linux-x64/package.json +0 -20
  364. package/node_modules/content-disposition/index.js +0 -536
  365. package/node_modules/esbuild/LICENSE.md +0 -21
  366. package/node_modules/esbuild/README.md +0 -3
  367. package/node_modules/esbuild/bin/esbuild +0 -0
  368. package/node_modules/esbuild/install.js +0 -300
  369. package/node_modules/esbuild/lib/main.d.ts +0 -720
  370. package/node_modules/esbuild/lib/main.js +0 -2536
  371. package/node_modules/esbuild/package.json +0 -74
  372. /package/node_modules/{@aws-sdk → @smithy}/core/dist-es/submodules/protocols/json/JsonSettings.js +0 -0
  373. /package/node_modules/{@aws-sdk → @smithy}/core/dist-es/submodules/protocols/json/codec-v1/JsonCodec.js +0 -0
  374. /package/node_modules/{@aws-sdk → @smithy}/core/dist-es/submodules/protocols/json/codec-v1/JsonSettings.js +0 -0
  375. /package/node_modules/{@aws-sdk → @smithy}/core/dist-es/submodules/protocols/json/codec-v2/JsonBytesStringAdapter.js +0 -0
  376. /package/node_modules/{@aws-sdk → @smithy}/core/dist-es/submodules/protocols/json/codec-v2/JsonCodec2.js +0 -0
  377. /package/node_modules/{@aws-sdk → @smithy}/core/dist-es/submodules/protocols/json/detectBufferParsing.js +0 -0
  378. /package/node_modules/{@aws-sdk → @smithy}/core/dist-es/submodules/protocols/json/jsonReplacer.js +0 -0
  379. /package/node_modules/{@aws-sdk → @smithy}/core/dist-es/submodules/protocols/json/jsonReviver.js +0 -0
  380. /package/node_modules/{@aws-sdk → @smithy}/core/dist-es/submodules/protocols/json/needsReviver.js +0 -0
  381. /package/node_modules/{@aws-sdk → @smithy}/core/dist-types/submodules/protocols/json/codec-v1/JsonCodec.d.ts +0 -0
  382. /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
  383. /package/node_modules/{@aws-sdk → @smithy}/core/dist-types/submodules/protocols/json/codec-v1/JsonShapeDeserializer.d.ts +0 -0
  384. /package/node_modules/{@aws-sdk → @smithy}/core/dist-types/submodules/protocols/json/codec-v1/JsonShapeSerializer.d.ts +0 -0
  385. /package/node_modules/{@aws-sdk → @smithy}/core/dist-types/submodules/protocols/json/codec-v2/JsonBytesStringAdapter.d.ts +0 -0
  386. /package/node_modules/{@aws-sdk → @smithy}/core/dist-types/submodules/protocols/json/codec-v2/JsonCodec2.d.ts +0 -0
  387. /package/node_modules/{@aws-sdk → @smithy}/core/dist-types/submodules/protocols/json/codec-v2/JsonShapeDeserializer2.d.ts +0 -0
  388. /package/node_modules/{@aws-sdk → @smithy}/core/dist-types/submodules/protocols/json/codec-v2/JsonShapeSerializer2.d.ts +0 -0
  389. /package/node_modules/{@aws-sdk → @smithy}/core/dist-types/submodules/protocols/json/detectBufferParsing.d.ts +0 -0
  390. /package/node_modules/{@aws-sdk → @smithy}/core/dist-types/submodules/protocols/json/jsonReplacer.d.ts +0 -0
  391. /package/node_modules/{@aws-sdk → @smithy}/core/dist-types/submodules/protocols/json/jsonReviver.d.ts +0 -0
  392. /package/node_modules/{@aws-sdk → @smithy}/core/dist-types/submodules/protocols/json/needsReviver.d.ts +0 -0
@@ -4,6 +4,7 @@ const assert = require('node:assert')
4
4
  const { kRetryHandlerDefaultRetry } = require('../core/symbols')
5
5
  const { RequestRetryError, RequestAbortedError } = require('../core/errors')
6
6
  const {
7
+ hasSafeIterator,
7
8
  isDisturbed,
8
9
  parseRangeHeader,
9
10
  wrapRequestBody
@@ -47,34 +48,51 @@ function validatePartialResponseContentLength (headers, range, statusCode, retry
47
48
  // so nothing outside the handler can trigger it.
48
49
  class RetryController {
49
50
  #onAbort
51
+ #paused = false
52
+ #target = null
50
53
 
51
54
  constructor (onAbort) {
52
55
  this.#onAbort = onAbort
53
- this.target = null
54
56
  }
55
57
 
56
- pause () { this.target?.pause() }
57
- resume () { this.target?.resume() }
58
+ set target (target) {
59
+ this.#target = target
60
+ if (this.#paused) {
61
+ target?.pause()
62
+ }
63
+ }
64
+
65
+ get target () { return this.#target }
66
+
67
+ pause () {
68
+ this.#paused = true
69
+ this.#target?.pause()
70
+ }
71
+
72
+ resume () {
73
+ this.#paused = false
74
+ this.#target?.resume()
75
+ }
58
76
 
59
77
  abort (reason) {
60
- this.target?.abort(reason)
78
+ this.#target?.abort(reason)
61
79
  this.#onAbort(reason)
62
80
  }
63
81
 
64
- get paused () { return this.target?.paused ?? false }
65
- get aborted () { return this.target?.aborted ?? false }
66
- get reason () { return this.target?.reason ?? null }
67
- get rawHeaders () { return this.target?.rawHeaders ?? null }
82
+ get paused () { return this.#paused || (this.#target?.paused ?? false) }
83
+ get aborted () { return this.#target?.aborted ?? false }
84
+ get reason () { return this.#target?.reason ?? null }
85
+ get rawHeaders () { return this.#target?.rawHeaders ?? null }
68
86
  set rawHeaders (value) {
69
- if (this.target) {
70
- this.target.rawHeaders = value
87
+ if (this.#target) {
88
+ this.#target.rawHeaders = value
71
89
  }
72
90
  }
73
91
 
74
- get rawTrailers () { return this.target?.rawTrailers ?? null }
92
+ get rawTrailers () { return this.#target?.rawTrailers ?? null }
75
93
  set rawTrailers (value) {
76
- if (this.target) {
77
- this.target.rawTrailers = value
94
+ if (this.#target) {
95
+ this.#target.rawTrailers = value
78
96
  }
79
97
  }
80
98
  }
@@ -142,6 +160,12 @@ class RetryHandler {
142
160
  // Backoff timer returned by the retry policy, so #onAbort can cancel it.
143
161
  // Null for custom policies that do not return their timer.
144
162
  this.retryTimer = null
163
+ // A response can complete while its controller is paused if the peer closes
164
+ // the connection. Hold its body until the retry policy decides whether to
165
+ // discard it for a retry or forward it as the final response.
166
+ this.pendingResponseData = null
167
+ this.pendingResponseTrailers = null
168
+ this.pendingResponseEnded = false
145
169
  // Set once an abort during the backoff delivered the terminal error
146
170
  // downstream; late policy callbacks and connection errors are then moot.
147
171
  this.aborted = false
@@ -183,6 +207,13 @@ class RetryHandler {
183
207
  this.retryPending = false
184
208
  this.retryTimer = null
185
209
 
210
+ const pendingData = this.pendingResponseData
211
+ const pendingTrailers = this.pendingResponseTrailers
212
+ const pendingEnd = this.pendingResponseEnded
213
+ this.pendingResponseData = null
214
+ this.pendingResponseTrailers = null
215
+ this.pendingResponseEnded = false
216
+
186
217
  if (passedErr) {
187
218
  if (this.headersSent) {
188
219
  // The downstream handler already received the response from an
@@ -193,6 +224,15 @@ class RetryHandler {
193
224
  this.headersSent = true
194
225
  this.checkpointResponseEnd(headers)
195
226
  this.handler.onResponseStart?.(this.controllerProxy, statusCode, headers, statusMessage)
227
+ controller.resume()
228
+
229
+ if (pendingEnd) {
230
+ for (const chunk of pendingData) {
231
+ this.onResponseData(controller, chunk)
232
+ }
233
+ this.onResponseEnd(controller, pendingTrailers)
234
+ }
235
+ return
196
236
  }
197
237
  controller.resume()
198
238
  return
@@ -200,6 +240,9 @@ class RetryHandler {
200
240
 
201
241
  this.error = err
202
242
  controller.resume()
243
+ if (pendingEnd) {
244
+ this.onResponseEnd(controller, pendingTrailers)
245
+ }
203
246
  }
204
247
 
205
248
  // The pause()/resume() pair (here and in shouldRetry) acts on THIS
@@ -213,6 +256,9 @@ class RetryHandler {
213
256
  // The default policy returns its backoff timer so an abort can cancel it;
214
257
  // a custom policy may return anything (or nothing), which is ignored.
215
258
  this.retryPending = true
259
+ this.pendingResponseData = []
260
+ this.pendingResponseTrailers = null
261
+ this.pendingResponseEnded = false
216
262
  this.retryTimer = this.retryOpts.retry(
217
263
  err,
218
264
  {
@@ -464,6 +510,11 @@ class RetryHandler {
464
510
  }
465
511
 
466
512
  onResponseData (_controller, chunk) {
513
+ if (this.pendingResponseData !== null) {
514
+ this.pendingResponseData.push(chunk)
515
+ return
516
+ }
517
+
467
518
  if (this.error) {
468
519
  return
469
520
  }
@@ -474,6 +525,12 @@ class RetryHandler {
474
525
  }
475
526
 
476
527
  onResponseEnd (_controller, trailers) {
528
+ if (this.pendingResponseData !== null) {
529
+ this.pendingResponseTrailers = trailers
530
+ this.pendingResponseEnded = true
531
+ return
532
+ }
533
+
477
534
  if (this.error && this.retryOpts.throwOnError) {
478
535
  throw this.error
479
536
  }
@@ -498,19 +555,9 @@ class RetryHandler {
498
555
 
499
556
  retry () {
500
557
  if (this.start !== 0) {
501
- const headers = { range: `bytes=${this.start}-${this.end ?? ''}` }
502
-
503
- // Weak etag check - weak etags will make comparison algorithms never match
504
- if (this.etag != null) {
505
- headers['if-match'] = this.etag
506
- }
507
-
508
558
  this.opts = {
509
559
  ...this.opts,
510
- headers: {
511
- ...this.opts.headers,
512
- ...headers
513
- }
560
+ headers: buildResumeHeaders(this.opts.headers, `bytes=${this.start}-${this.end ?? ''}`, this.etag)
514
561
  }
515
562
  }
516
563
 
@@ -587,8 +634,53 @@ class RetryHandler {
587
634
  this.retryPending = false
588
635
  clearTimeout(this.retryTimer)
589
636
  this.retryTimer = null
637
+ this.pendingResponseData = null
638
+ this.pendingResponseTrailers = null
639
+ this.pendingResponseEnded = false
590
640
  this.handler.onResponseError?.(this.controllerProxy, reason ?? new RequestAbortedError())
591
641
  }
592
642
  }
593
643
 
644
+ function isReplacedHeader (key, etag) {
645
+ const name = key.toLowerCase()
646
+ return name === 'range' || (etag != null && name === 'if-match')
647
+ }
648
+
649
+ function buildResumeHeaders (headers, range, etag) {
650
+ if (Array.isArray(headers) || (headers && typeof headers === 'object' && hasSafeIterator(headers))) {
651
+ const ret = []
652
+ if (Array.isArray(headers)) {
653
+ for (let i = 0; i < headers.length; i += 2) {
654
+ if (!isReplacedHeader(headers[i], etag)) {
655
+ ret.push(headers[i], headers[i + 1])
656
+ }
657
+ }
658
+ } else {
659
+ for (const [key, value] of headers) {
660
+ if (!isReplacedHeader(key, etag)) {
661
+ ret.push(key, value)
662
+ }
663
+ }
664
+ }
665
+ ret.push('range', range)
666
+ // Weak etag check - weak etags will make comparison algorithms never match
667
+ if (etag != null) {
668
+ ret.push('if-match', etag)
669
+ }
670
+ return ret
671
+ }
672
+
673
+ const ret = {}
674
+ for (const key in headers) {
675
+ if (Object.hasOwn(headers, key) && !isReplacedHeader(key, etag)) {
676
+ ret[key] = headers[key]
677
+ }
678
+ }
679
+ ret.range = range
680
+ if (etag != null) {
681
+ ret['if-match'] = etag
682
+ }
683
+ return ret
684
+ }
685
+
594
686
  module.exports = RetryHandler
@@ -210,7 +210,10 @@ function makeRevalidationHeaders (opts, result) {
210
210
  */
211
211
  function isStale (result, cacheControlDirectives, cacheType) {
212
212
  const now = Date.now()
213
- if (now > result.staleAt) {
213
+ // A zero freshness lifetime (e.g. max-age=0 with a validator) is never fresh,
214
+ // even when reused within the same millisecond or after a clock step back.
215
+ // https://www.rfc-editor.org/rfc/rfc9111.html#section-4.2
216
+ if (now > result.staleAt || result.staleAt <= result.cachedAt) {
214
217
  // Response is stale
215
218
  if (!staleResponseRequiresRevalidation(result, cacheType) && cacheControlDirectives?.['max-stale']) {
216
219
  // There's a threshold where we can serve stale responses, let's see if
@@ -330,6 +333,9 @@ function sendCachedValue (handler, opts, result, age, context, isStale) {
330
333
  assert(!stream.destroyed, 'stream should not be destroyed')
331
334
  assert(!stream.readableDidRead, 'stream should not be readableDidRead')
332
335
 
336
+ let aborted = false
337
+ let abortReason = null
338
+
333
339
  const controller = {
334
340
  rawHeaders: [],
335
341
  rawTrailers: [],
@@ -343,13 +349,18 @@ function sendCachedValue (handler, opts, result, age, context, isStale) {
343
349
  return stream.isPaused()
344
350
  },
345
351
  get aborted () {
346
- return stream.destroyed
352
+ return aborted
347
353
  },
348
354
  get reason () {
349
- return stream.errored
355
+ return abortReason
350
356
  },
351
357
  abort (reason) {
352
- stream.destroy(reason ?? new AbortError())
358
+ if (aborted) {
359
+ return
360
+ }
361
+ aborted = true
362
+ abortReason = reason ?? new AbortError()
363
+ stream.destroy(abortReason)
353
364
  }
354
365
  }
355
366