@psnext/slingcli 3.5.20261007-3 → 3.5.20261026-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 (453) 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 +4 -4
  18. package/node_modules/@aws-sdk/credential-provider-env/package.json +4 -4
  19. package/node_modules/@aws-sdk/credential-provider-http/package.json +4 -4
  20. package/node_modules/@aws-sdk/credential-provider-ini/package.json +11 -11
  21. package/node_modules/@aws-sdk/credential-provider-login/package.json +5 -5
  22. package/node_modules/@aws-sdk/credential-provider-node/package.json +9 -9
  23. package/node_modules/@aws-sdk/credential-provider-process/package.json +4 -4
  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 +5 -5
  27. package/node_modules/@aws-sdk/credential-provider-sso/package.json +6 -6
  28. package/node_modules/@aws-sdk/credential-provider-web-identity/package.json +5 -5
  29. package/node_modules/@aws-sdk/eventstream-handler-node/package.json +3 -3
  30. package/node_modules/@aws-sdk/middleware-eventstream/package.json +3 -3
  31. package/node_modules/@aws-sdk/middleware-websocket/package.json +5 -5
  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/CognitoIdentityClient.d.ts +2 -1
  48. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/cognito-identity/models/CognitoIdentityServiceException.d.ts +1 -0
  49. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/cognito-identity/models/errors.d.ts +9 -0
  50. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/signin/SigninClient.d.ts +2 -1
  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/SSOClient.d.ts +2 -1
  54. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso/models/SSOServiceException.d.ts +1 -0
  55. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso/models/errors.d.ts +4 -0
  56. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/SSOOIDCClient.d.ts +2 -1
  57. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/models/SSOOIDCServiceException.d.ts +1 -0
  58. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/models/errors.d.ts +11 -0
  59. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/STSClient.d.ts +2 -1
  60. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/models/STSServiceException.d.ts +1 -0
  61. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/models/errors.d.ts +7 -0
  62. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/cognito-identity/models/CognitoIdentityServiceException.d.ts +1 -0
  63. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/cognito-identity/models/errors.d.ts +9 -0
  64. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/signin/models/SigninServiceException.d.ts +1 -0
  65. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/signin/models/errors.d.ts +4 -0
  66. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso/models/SSOServiceException.d.ts +1 -0
  67. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso/models/errors.d.ts +4 -0
  68. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso-oidc/models/SSOOIDCServiceException.d.ts +1 -0
  69. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso-oidc/models/errors.d.ts +11 -0
  70. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/models/STSServiceException.d.ts +1 -0
  71. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/models/errors.d.ts +7 -0
  72. package/node_modules/@aws-sdk/nested-clients/package.json +5 -5
  73. package/node_modules/@aws-sdk/signature-v4-multi-region/package.json +3 -3
  74. package/node_modules/@aws-sdk/types/dist-types/feature-ids.d.ts +3 -0
  75. package/node_modules/@aws-sdk/types/dist-types/ts3.4/feature-ids.d.ts +3 -0
  76. package/node_modules/@aws-sdk/types/package.json +1 -1
  77. package/node_modules/@earendil-works/pi-ai/dist/providers/opencode-go.js +2 -0
  78. package/node_modules/@earendil-works/pi-codemode/dist/runtime/host.js +21 -86
  79. package/node_modules/@earendil-works/pi-codemode/dist/runtime/prelude-source.js +3 -103
  80. package/node_modules/@earendil-works/pi-codemode/package.json +1 -1
  81. package/node_modules/@earendil-works/pi-coding-agent/dist/bundle/chunks/{chunk-TFS67BSI.js → chunk-23QDZLZG.js} +20 -14
  82. package/node_modules/@earendil-works/pi-coding-agent/dist/bundle/chunks/{chunk-IB6ONE3U.js → chunk-QPFSTNX5.js} +1 -1
  83. package/node_modules/@earendil-works/pi-coding-agent/dist/bundle/chunks/{virtual-modules-P5ROWYIG.js → virtual-modules-GRXGP6ZA.js} +1 -1
  84. package/node_modules/@earendil-works/pi-coding-agent/dist/bundle/cli-runtime.js +1 -1
  85. package/node_modules/@earendil-works/pi-coding-agent/dist/bundle/index.js +1 -1
  86. package/node_modules/@earendil-works/pi-coding-agent/dist/bundle/rpc-entry.js +1 -1
  87. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/docs/docs/api/Agent.md +8 -8
  88. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/docs/docs/api/CacheStore.md +24 -9
  89. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/docs/docs/api/Client.md +11 -6
  90. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/docs/docs/api/DiagnosticsChannel.md +9 -6
  91. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/docs/docs/api/Dispatcher.md +12 -0
  92. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/docs/docs/api/Errors.md +101 -1
  93. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/docs/docs/api/Fetch.md +10 -0
  94. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/docs/docs/api/H2CClient.md +3 -2
  95. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/docs/docs/api/Interceptors.md +17 -9
  96. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/docs/docs/api/Pool.md +5 -6
  97. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/docs/docs/api/RedirectHandler.md +13 -10
  98. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/docs/docs/index.md +22 -13
  99. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/docs/docs/type-map.json +66 -66
  100. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/api/readable.js +1 -2
  101. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/cache/memory-cache-store.js +48 -13
  102. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/cache/sqlite-cache-store.js +83 -5
  103. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/core/connect.js +10 -4
  104. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/core/constants.js +12 -1
  105. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/core/errors.js +38 -1
  106. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/core/request.js +39 -3
  107. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/core/symbols.js +2 -0
  108. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/core/util.js +26 -40
  109. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/dispatcher/agent.js +6 -2
  110. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/dispatcher/client-h1.js +127 -84
  111. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/dispatcher/client-h2.js +97 -21
  112. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/dispatcher/client.js +10 -2
  113. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/dispatcher/dispatcher-base.js +3 -2
  114. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/dispatcher/dispatcher1-wrapper.js +20 -3
  115. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/dispatcher/env-http-proxy-agent.js +21 -6
  116. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/dispatcher/parser-h1.js +1064 -0
  117. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/dispatcher/pool-base.js +117 -19
  118. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/dispatcher/pool.js +99 -13
  119. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/dispatcher/proxy-agent.js +34 -11
  120. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/dispatcher/retry-agent.js +10 -0
  121. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/dispatcher/round-robin-pool.js +15 -5
  122. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/handler/cache-handler.js +153 -15
  123. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/handler/deduplication-handler.js +126 -52
  124. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/handler/redirect-handler.js +31 -6
  125. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/handler/retry-handler.js +116 -24
  126. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/interceptor/cache.js +15 -4
  127. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/interceptor/decompress.js +253 -73
  128. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/interceptor/dns.js +11 -0
  129. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/interceptor/response-error.js +72 -28
  130. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/milo/LICENSE.md +7 -0
  131. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/milo/no-simd.js +1002 -0
  132. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/milo/simd.js +1002 -0
  133. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/mock/mock-agent.js +11 -0
  134. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/mock/snapshot-recorder.js +3 -2
  135. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/mock/snapshot-utils.js +3 -2
  136. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/util/cache.js +11 -5
  137. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/cache/cache.js +17 -8
  138. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/cache/cachestorage.js +11 -5
  139. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/cookies/index.js +19 -7
  140. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/cookies/util.js +21 -2
  141. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/eventsource/eventsource-stream.js +69 -15
  142. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/eventsource/eventsource.js +50 -3
  143. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/fetch/body.js +69 -53
  144. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/fetch/data-url.js +6 -6
  145. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/fetch/formdata-parser.js +12 -4
  146. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/fetch/formdata.js +30 -36
  147. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/fetch/headers.js +36 -33
  148. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/fetch/index.js +54 -29
  149. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/fetch/request.js +74 -79
  150. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/fetch/response.js +43 -44
  151. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/fetch/util.js +7 -7
  152. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/infra/index.js +16 -1
  153. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/subresource-integrity/subresource-integrity.js +5 -5
  154. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/webidl/index.js +2 -14
  155. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/websocket/connection.js +33 -12
  156. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/websocket/events.js +43 -26
  157. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/websocket/receiver.js +27 -4
  158. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/websocket/stream/websocketerror.js +13 -10
  159. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/websocket/stream/websocketstream.js +19 -4
  160. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/lib/web/websocket/websocket.js +44 -41
  161. package/node_modules/@earendil-works/pi-coding-agent/node_modules/undici/package.json +7 -5
  162. package/node_modules/@earendil-works/pi-coding-agent/package.json +2 -2
  163. package/node_modules/@hono/node-server/README.md +2 -0
  164. package/node_modules/@hono/node-server/dist/index.cjs +1 -1
  165. package/node_modules/@hono/node-server/dist/index.mjs +1 -1
  166. package/node_modules/@hono/node-server/dist/serve-static.cjs +2 -1
  167. package/node_modules/@hono/node-server/dist/serve-static.mjs +2 -1
  168. package/node_modules/@hono/node-server/package.json +2 -2
  169. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/server/mcp.d.ts.map +1 -1
  170. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/server/mcp.js +10 -0
  171. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/server/mcp.js.map +1 -1
  172. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/shared/transport.d.ts +8 -8
  173. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/shared/transport.d.ts.map +1 -1
  174. package/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.d.ts.map +1 -1
  175. package/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js +10 -0
  176. package/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js.map +1 -1
  177. package/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/transport.d.ts +8 -8
  178. package/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/transport.d.ts.map +1 -1
  179. package/node_modules/@modelcontextprotocol/sdk/package.json +1 -1
  180. package/node_modules/@smithy/core/dist-cjs/submodules/client/index.js +15 -2
  181. package/node_modules/@smithy/core/dist-cjs/submodules/endpoints/index.browser.js +2 -1
  182. package/node_modules/@smithy/core/dist-cjs/submodules/endpoints/index.js +2 -1
  183. package/node_modules/@smithy/core/dist-cjs/submodules/event-streams/index.browser.js +10 -0
  184. package/node_modules/@smithy/core/dist-cjs/submodules/event-streams/index.js +10 -0
  185. package/node_modules/@smithy/core/dist-cjs/submodules/protocols/index.js +1695 -3
  186. package/node_modules/@smithy/core/dist-es/submodules/client/smithy-client/command.js +16 -2
  187. package/node_modules/@smithy/core/dist-es/submodules/endpoints/util-endpoints/cache/EndpointCache.js +2 -1
  188. package/node_modules/@smithy/core/dist-es/submodules/event-streams/eventstream-codec/HeaderMarshaller.js +10 -0
  189. package/node_modules/@smithy/core/dist-es/submodules/protocols/ConfigurableSerdeContext.js +6 -0
  190. package/node_modules/@smithy/core/dist-es/submodules/protocols/UnionSerde.js +26 -0
  191. package/node_modules/@smithy/core/dist-es/submodules/protocols/common.js +3 -0
  192. package/node_modules/@smithy/core/dist-es/submodules/protocols/index.js +8 -0
  193. package/node_modules/@smithy/core/dist-es/submodules/protocols/json/SmithyRpcV2JsonProtocol.js +102 -0
  194. package/node_modules/{@aws-sdk → @smithy}/core/dist-es/submodules/protocols/json/codec-v1/JsonShapeDeserializer.js +8 -1
  195. package/node_modules/{@aws-sdk → @smithy}/core/dist-es/submodules/protocols/json/codec-v1/JsonShapeSerializer.js +8 -1
  196. package/node_modules/{@aws-sdk → @smithy}/core/dist-es/submodules/protocols/json/codec-v2/JsonShapeDeserializer2.js +13 -2
  197. package/node_modules/{@aws-sdk → @smithy}/core/dist-es/submodules/protocols/json/codec-v2/JsonShapeSerializer2.js +16 -6
  198. package/node_modules/{@aws-sdk → @smithy}/core/dist-es/submodules/protocols/json/parseJsonBody.js +16 -1
  199. package/node_modules/@smithy/core/dist-es/submodules/protocols/writeKey.js +3 -0
  200. package/node_modules/@smithy/core/dist-types/submodules/protocols/ConfigurableSerdeContext.d.ts +8 -0
  201. package/node_modules/@smithy/core/dist-types/submodules/protocols/UnionSerde.d.ts +24 -0
  202. package/node_modules/@smithy/core/dist-types/submodules/protocols/common.d.ts +2 -0
  203. package/node_modules/@smithy/core/dist-types/submodules/protocols/index.d.ts +9 -0
  204. package/node_modules/@smithy/core/dist-types/submodules/protocols/json/JsonSettings.d.ts +13 -0
  205. package/node_modules/@smithy/core/dist-types/submodules/protocols/json/SmithyRpcV2JsonProtocol.d.ts +28 -0
  206. package/node_modules/{@aws-sdk → @smithy}/core/dist-types/submodules/protocols/json/parseJsonBody.d.ts +16 -0
  207. package/node_modules/@smithy/core/dist-types/submodules/protocols/writeKey.d.ts +4 -0
  208. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/ConfigurableSerdeContext.d.ts +8 -0
  209. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/UnionSerde.d.ts +24 -0
  210. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/common.d.ts +2 -0
  211. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/index.d.ts +9 -0
  212. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/json/JsonSettings.d.ts +13 -0
  213. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/json/SmithyRpcV2JsonProtocol.d.ts +28 -0
  214. package/node_modules/{@aws-sdk → @smithy}/core/dist-types/ts3.4/submodules/protocols/json/codec-v1/JsonCodec.d.ts +15 -11
  215. 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
  216. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/json/codec-v1/JsonShapeDeserializer.d.ts +14 -0
  217. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/json/codec-v1/JsonShapeSerializer.d.ts +29 -0
  218. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/json/codec-v2/JsonBytesStringAdapter.d.ts +51 -0
  219. package/node_modules/{@aws-sdk → @smithy}/core/dist-types/ts3.4/submodules/protocols/json/codec-v2/JsonCodec2.d.ts +13 -9
  220. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/json/codec-v2/JsonShapeDeserializer2.d.ts +30 -0
  221. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/json/codec-v2/JsonShapeSerializer2.d.ts +60 -0
  222. package/node_modules/{@aws-sdk → @smithy}/core/dist-types/ts3.4/submodules/protocols/json/detectBufferParsing.d.ts +1 -1
  223. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/json/jsonReplacer.d.ts +21 -0
  224. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/json/jsonReviver.d.ts +15 -0
  225. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/json/needsReviver.d.ts +11 -0
  226. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/json/parseJsonBody.d.ts +38 -0
  227. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/writeKey.d.ts +4 -0
  228. package/node_modules/@smithy/core/package.json +2 -1
  229. package/node_modules/@types/node/README.md +1 -1
  230. package/node_modules/@types/node/package.json +2 -2
  231. package/node_modules/@types/node/util.d.ts +6 -3
  232. package/node_modules/body-parser/README.md +17 -13
  233. package/node_modules/body-parser/lib/read.js +74 -57
  234. package/node_modules/body-parser/lib/types/json.js +11 -11
  235. package/node_modules/body-parser/lib/types/urlencoded.js +5 -5
  236. package/node_modules/body-parser/lib/utils.js +0 -15
  237. package/node_modules/body-parser/package.json +7 -12
  238. package/node_modules/content-disposition/README.md +105 -35
  239. package/node_modules/content-disposition/dist/index.d.ts +72 -0
  240. package/node_modules/content-disposition/dist/index.js +388 -0
  241. package/node_modules/content-disposition/dist/index.js.map +1 -0
  242. package/node_modules/content-disposition/package.json +31 -19
  243. package/node_modules/express/Readme.md +15 -9
  244. package/node_modules/express/lib/application.js +2 -2
  245. package/node_modules/express/lib/request.js +32 -19
  246. package/node_modules/express/lib/response.js +27 -30
  247. package/node_modules/express/node_modules/content-type/LICENSE +22 -0
  248. package/node_modules/express/node_modules/content-type/README.md +71 -0
  249. package/node_modules/express/node_modules/content-type/dist/index.d.ts +46 -0
  250. package/node_modules/express/node_modules/content-type/dist/index.js +176 -0
  251. package/node_modules/express/node_modules/content-type/dist/index.js.map +1 -0
  252. package/node_modules/express/node_modules/content-type/package.json +52 -0
  253. package/node_modules/express/package.json +10 -10
  254. package/node_modules/fast-uri/.github/workflows/release.yml +35 -0
  255. package/node_modules/fast-uri/README.md +8 -0
  256. package/node_modules/fast-uri/index.js +98 -18
  257. package/node_modules/fast-uri/lib/utils.js +52 -0
  258. package/node_modules/fast-uri/package.json +1 -1
  259. package/node_modules/fast-uri/test/host-delimiter-security.test.js +94 -0
  260. package/node_modules/fast-uri/test/relative-normalization-security.test.js +156 -0
  261. package/node_modules/fast-uri/test/reserved-path-normalization.test.js +32 -4
  262. package/node_modules/fast-uri/test/scheme-validation.test.js +53 -14
  263. package/node_modules/hono/README.md +2 -3
  264. package/node_modules/hono/dist/cjs/helper/css/common.js +8 -3
  265. package/node_modules/hono/dist/cjs/helper/css/index.js +1 -1
  266. package/node_modules/hono/dist/cjs/helper/route/index.js +3 -1
  267. package/node_modules/hono/dist/cjs/jsx/base.js +1 -1
  268. package/node_modules/hono/dist/cjs/middleware/bearer-auth/index.js +8 -0
  269. package/node_modules/hono/dist/cjs/middleware/serve-static/index.js +3 -1
  270. package/node_modules/hono/dist/cjs/router/trie-router/node.js +2 -2
  271. package/node_modules/hono/dist/cjs/utils/url.js +11 -6
  272. package/node_modules/hono/dist/helper/css/common.js +8 -3
  273. package/node_modules/hono/dist/helper/css/index.js +1 -1
  274. package/node_modules/hono/dist/helper/route/index.js +3 -1
  275. package/node_modules/hono/dist/jsx/base.js +1 -1
  276. package/node_modules/hono/dist/middleware/bearer-auth/index.js +8 -0
  277. package/node_modules/hono/dist/middleware/serve-static/index.js +3 -1
  278. package/node_modules/hono/dist/router/trie-router/node.js +2 -2
  279. package/node_modules/hono/dist/types/adapter/aws-lambda/conninfo.d.ts +1 -1
  280. package/node_modules/hono/dist/types/adapter/bun/conninfo.d.ts +1 -1
  281. package/node_modules/hono/dist/types/adapter/bun/ssg.d.ts +1 -1
  282. package/node_modules/hono/dist/types/adapter/cloudflare-pages/conninfo.d.ts +1 -1
  283. package/node_modules/hono/dist/types/adapter/cloudflare-workers/conninfo.d.ts +1 -1
  284. package/node_modules/hono/dist/types/adapter/deno/conninfo.d.ts +1 -1
  285. package/node_modules/hono/dist/types/adapter/deno/ssg.d.ts +1 -1
  286. package/node_modules/hono/dist/types/adapter/lambda-edge/conninfo.d.ts +1 -1
  287. package/node_modules/hono/dist/types/adapter/netlify/conninfo.d.ts +1 -1
  288. package/node_modules/hono/dist/types/adapter/vercel/conninfo.d.ts +1 -1
  289. package/node_modules/hono/dist/types/helper/testing/index.d.ts +2 -1
  290. package/node_modules/hono/dist/types/hono-base.d.ts +21 -9
  291. package/node_modules/hono/dist/types/index.d.ts +1 -1
  292. package/node_modules/hono/dist/types/jsx/components.d.ts +2 -2
  293. package/node_modules/hono/dist/types/jsx/context.d.ts +2 -2
  294. package/node_modules/hono/dist/types/jsx/dom/components.d.ts +2 -2
  295. package/node_modules/hono/dist/types/jsx/dom/css.d.ts +2 -2
  296. package/node_modules/hono/dist/types/jsx/streaming.d.ts +4 -3
  297. package/node_modules/hono/dist/types/middleware/bearer-auth/index.d.ts +2 -1
  298. package/node_modules/hono/dist/types/middleware/ip-restriction/index.d.ts +3 -3
  299. package/node_modules/hono/dist/types/middleware/jsx-renderer/index.d.ts +3 -3
  300. package/node_modules/hono/dist/types/utils/ipaddr.d.ts +1 -1
  301. package/node_modules/hono/dist/utils/url.js +11 -6
  302. package/node_modules/hono/package.json +1 -1
  303. package/node_modules/ip-address/README.md +70 -70
  304. package/node_modules/ip-address/dist/common.js +2 -2
  305. package/node_modules/ip-address/dist/common.js.map +1 -1
  306. package/node_modules/ip-address/dist/ipv6.js +7 -4
  307. package/node_modules/ip-address/dist/ipv6.js.map +1 -1
  308. package/node_modules/ip-address/dist/v6/constants.d.ts +3 -0
  309. package/node_modules/ip-address/dist/v6/constants.js +3 -0
  310. package/node_modules/ip-address/dist/v6/constants.js.map +1 -1
  311. package/node_modules/ip-address/package.json +3 -2
  312. package/node_modules/jose/README.md +2 -2
  313. package/node_modules/jose/dist/types/jwe/compact/decrypt.d.ts +5 -4
  314. package/node_modules/jose/dist/types/jwe/compact/encrypt.d.ts +4 -4
  315. package/node_modules/jose/dist/types/jwe/flattened/decrypt.d.ts +5 -4
  316. package/node_modules/jose/dist/types/jwe/flattened/encrypt.d.ts +5 -5
  317. package/node_modules/jose/dist/types/jwe/general/decrypt.d.ts +5 -4
  318. package/node_modules/jose/dist/types/jwe/general/encrypt.d.ts +5 -5
  319. package/node_modules/jose/dist/types/jws/compact/sign.d.ts +5 -4
  320. package/node_modules/jose/dist/types/jws/compact/verify.d.ts +5 -5
  321. package/node_modules/jose/dist/types/jws/flattened/sign.d.ts +5 -4
  322. package/node_modules/jose/dist/types/jws/flattened/verify.d.ts +6 -5
  323. package/node_modules/jose/dist/types/jws/general/sign.d.ts +9 -6
  324. package/node_modules/jose/dist/types/jws/general/verify.d.ts +7 -5
  325. package/node_modules/jose/dist/types/jwt/decrypt.d.ts +7 -6
  326. package/node_modules/jose/dist/types/jwt/encrypt.d.ts +1 -1
  327. package/node_modules/jose/dist/types/jwt/sign.d.ts +1 -1
  328. package/node_modules/jose/dist/types/jwt/unsecured.d.ts +1 -1
  329. package/node_modules/jose/dist/types/jwt/verify.d.ts +3 -5
  330. package/node_modules/jose/dist/types/key/export.d.ts +1 -1
  331. package/node_modules/jose/dist/types/key/generate_secret.d.ts +1 -1
  332. package/node_modules/jose/dist/types/key/import.d.ts +2 -2
  333. package/node_modules/jose/dist/types/types.d.ts +165 -107
  334. package/node_modules/jose/dist/types/util/decode_jwt.d.ts +2 -2
  335. package/node_modules/jose/dist/types/util/errors.d.ts +1 -1
  336. package/node_modules/jose/dist/webapi/jwe/general/encrypt.js +3 -3
  337. package/node_modules/jose/dist/webapi/jwk/thumbprint.js +8 -8
  338. package/node_modules/jose/dist/webapi/jwks/local.js +2 -1
  339. package/node_modules/jose/dist/webapi/jwks/remote.js +4 -4
  340. package/node_modules/jose/dist/webapi/jws/general/sign.js +3 -3
  341. package/node_modules/jose/dist/webapi/jws/general/verify.js +3 -3
  342. package/node_modules/jose/dist/webapi/jwt/encrypt.js +2 -2
  343. package/node_modules/jose/dist/webapi/jwt/sign.js +2 -2
  344. package/node_modules/jose/dist/webapi/jwt/unsecured.js +3 -3
  345. package/node_modules/jose/dist/webapi/key/generate_secret.js +4 -4
  346. package/node_modules/jose/dist/webapi/lib/asn1.js +2 -2
  347. package/node_modules/jose/dist/webapi/lib/buffer_utils.js +4 -4
  348. package/node_modules/jose/dist/webapi/lib/content_encryption.js +8 -8
  349. package/node_modules/jose/dist/webapi/lib/jwe_decrypt.js +14 -14
  350. package/node_modules/jose/dist/webapi/lib/jwe_encrypt.js +3 -3
  351. package/node_modules/jose/dist/webapi/lib/jws_algorithms.js +2 -2
  352. package/node_modules/jose/dist/webapi/lib/jws_sign.js +11 -11
  353. package/node_modules/jose/dist/webapi/lib/jws_verify.js +19 -16
  354. package/node_modules/jose/dist/webapi/lib/jwt_claims_set.js +44 -43
  355. package/node_modules/jose/dist/webapi/lib/key.js +4 -4
  356. package/node_modules/jose/dist/webapi/lib/key_management.js +17 -17
  357. package/node_modules/jose/dist/webapi/lib/validate.js +10 -10
  358. package/node_modules/jose/dist/webapi/util/decode_jwt.js +12 -12
  359. package/node_modules/jose/dist/webapi/util/decode_protected_header.js +5 -5
  360. package/node_modules/jose/package.json +1 -1
  361. package/node_modules/on-finished/index.js +14 -2
  362. package/node_modules/on-finished/package.json +11 -7
  363. package/node_modules/qs/.github/THREAT_MODEL.md +4 -2
  364. package/node_modules/qs/CHANGELOG.md +38 -14
  365. package/node_modules/qs/README.md +31 -3
  366. package/node_modules/qs/dist/qs.js +20 -20
  367. package/node_modules/qs/lib/parse.js +94 -4
  368. package/node_modules/qs/lib/stringify.js +4 -4
  369. package/node_modules/qs/lib/utils.js +130 -6
  370. package/node_modules/qs/package.json +4 -4
  371. package/node_modules/qs/test/parse.js +174 -0
  372. package/node_modules/qs/test/stringify.js +263 -33
  373. package/node_modules/qs/test/utils.js +184 -0
  374. package/node_modules/undici/docs/docs/api/Client.md +2 -0
  375. package/node_modules/undici/lib/core/connect.js +10 -4
  376. package/node_modules/undici/lib/core/symbols.js +1 -0
  377. package/node_modules/undici/lib/dispatcher/agent.js +6 -2
  378. package/node_modules/undici/lib/dispatcher/client-h1.js +0 -2
  379. package/node_modules/undici/lib/dispatcher/client-h2.js +0 -4
  380. package/node_modules/undici/lib/dispatcher/client.js +3 -2
  381. package/node_modules/undici/lib/dispatcher/dispatcher-base.js +12 -0
  382. package/node_modules/undici/lib/handler/cache-handler.js +48 -0
  383. package/node_modules/undici/lib/handler/deduplication-handler.js +57 -13
  384. package/node_modules/undici/lib/handler/redirect-handler.js +8 -1
  385. package/node_modules/undici/lib/interceptor/decompress.js +15 -5
  386. package/node_modules/undici/lib/web/cookies/index.js +3 -1
  387. package/node_modules/undici/lib/web/cookies/parse.js +138 -137
  388. package/node_modules/undici/lib/web/cookies/util.js +21 -2
  389. package/node_modules/undici/lib/web/eventsource/eventsource-stream.js +90 -9
  390. package/node_modules/undici/lib/web/eventsource/eventsource.js +4 -1
  391. package/node_modules/undici/lib/web/fetch/index.js +3 -3
  392. package/node_modules/undici/lib/web/infra/index.js +14 -0
  393. package/node_modules/undici/lib/web/subresource-integrity/subresource-integrity.js +5 -5
  394. package/node_modules/undici/lib/web/websocket/receiver.js +13 -0
  395. package/node_modules/undici/package.json +1 -1
  396. package/node_modules/undici/types/client.d.ts +14 -0
  397. package/node_modules/zod/package.json +1 -1
  398. package/node_modules/zod/src/v4/classic/tests/array.test.ts +27 -0
  399. package/node_modules/zod/src/v4/classic/tests/map.test.ts +7 -0
  400. package/node_modules/zod/src/v4/classic/tests/set.test.ts +6 -0
  401. package/node_modules/zod/src/v4/core/compile.ts +9 -0
  402. package/node_modules/zod/src/v4/core/schemas.ts +35 -1
  403. package/node_modules/zod/src/v4/core/util.ts +13 -0
  404. package/node_modules/zod/src/v4/core/versions.ts +1 -1
  405. package/node_modules/zod/v4/core/compile.cjs +8 -0
  406. package/node_modules/zod/v4/core/compile.js +8 -0
  407. package/node_modules/zod/v4/core/schemas.cjs +30 -0
  408. package/node_modules/zod/v4/core/schemas.d.cts +3 -1
  409. package/node_modules/zod/v4/core/schemas.d.ts +3 -1
  410. package/node_modules/zod/v4/core/schemas.js +30 -0
  411. package/node_modules/zod/v4/core/util.cjs +15 -0
  412. package/node_modules/zod/v4/core/util.d.cts +2 -0
  413. package/node_modules/zod/v4/core/util.d.ts +2 -0
  414. package/node_modules/zod/v4/core/util.js +14 -0
  415. package/node_modules/zod/v4/core/versions.cjs +1 -1
  416. package/node_modules/zod/v4/core/versions.js +1 -1
  417. package/package.json +5 -4
  418. package/sling-default-packages.json +3 -2
  419. package/slingshot/index.js +124 -124
  420. package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/codec-v1/JsonSettings.d.ts +0 -7
  421. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/codec-v1/JsonSettings.d.ts +0 -4
  422. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/codec-v1/JsonShapeDeserializer.d.ts +0 -13
  423. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/codec-v1/JsonShapeSerializer.d.ts +0 -18
  424. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/codec-v2/JsonBytesStringAdapter.d.ts +0 -27
  425. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/codec-v2/JsonShapeDeserializer2.d.ts +0 -15
  426. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/codec-v2/JsonShapeSerializer2.d.ts +0 -39
  427. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/jsonReplacer.d.ts +0 -7
  428. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/jsonReviver.d.ts +0 -7
  429. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/needsReviver.d.ts +0 -2
  430. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/parseJsonBody.d.ts +0 -14
  431. package/node_modules/content-disposition/index.js +0 -536
  432. package/node_modules/on-finished/HISTORY.md +0 -98
  433. /package/node_modules/{@aws-sdk → @smithy}/core/dist-es/submodules/protocols/json/JsonSettings.js +0 -0
  434. /package/node_modules/{@aws-sdk → @smithy}/core/dist-es/submodules/protocols/json/codec-v1/JsonCodec.js +0 -0
  435. /package/node_modules/{@aws-sdk → @smithy}/core/dist-es/submodules/protocols/json/codec-v1/JsonSettings.js +0 -0
  436. /package/node_modules/{@aws-sdk → @smithy}/core/dist-es/submodules/protocols/json/codec-v2/JsonBytesStringAdapter.js +0 -0
  437. /package/node_modules/{@aws-sdk → @smithy}/core/dist-es/submodules/protocols/json/codec-v2/JsonCodec2.js +0 -0
  438. /package/node_modules/{@aws-sdk → @smithy}/core/dist-es/submodules/protocols/json/detectBufferParsing.js +0 -0
  439. /package/node_modules/{@aws-sdk → @smithy}/core/dist-es/submodules/protocols/json/jsonReplacer.js +0 -0
  440. /package/node_modules/{@aws-sdk → @smithy}/core/dist-es/submodules/protocols/json/jsonReviver.js +0 -0
  441. /package/node_modules/{@aws-sdk → @smithy}/core/dist-es/submodules/protocols/json/needsReviver.js +0 -0
  442. /package/node_modules/{@aws-sdk → @smithy}/core/dist-types/submodules/protocols/json/codec-v1/JsonCodec.d.ts +0 -0
  443. /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
  444. /package/node_modules/{@aws-sdk → @smithy}/core/dist-types/submodules/protocols/json/codec-v1/JsonShapeDeserializer.d.ts +0 -0
  445. /package/node_modules/{@aws-sdk → @smithy}/core/dist-types/submodules/protocols/json/codec-v1/JsonShapeSerializer.d.ts +0 -0
  446. /package/node_modules/{@aws-sdk → @smithy}/core/dist-types/submodules/protocols/json/codec-v2/JsonBytesStringAdapter.d.ts +0 -0
  447. /package/node_modules/{@aws-sdk → @smithy}/core/dist-types/submodules/protocols/json/codec-v2/JsonCodec2.d.ts +0 -0
  448. /package/node_modules/{@aws-sdk → @smithy}/core/dist-types/submodules/protocols/json/codec-v2/JsonShapeDeserializer2.d.ts +0 -0
  449. /package/node_modules/{@aws-sdk → @smithy}/core/dist-types/submodules/protocols/json/codec-v2/JsonShapeSerializer2.d.ts +0 -0
  450. /package/node_modules/{@aws-sdk → @smithy}/core/dist-types/submodules/protocols/json/detectBufferParsing.d.ts +0 -0
  451. /package/node_modules/{@aws-sdk → @smithy}/core/dist-types/submodules/protocols/json/jsonReplacer.d.ts +0 -0
  452. /package/node_modules/{@aws-sdk → @smithy}/core/dist-types/submodules/protocols/json/jsonReviver.d.ts +0 -0
  453. /package/node_modules/{@aws-sdk → @smithy}/core/dist-types/submodules/protocols/json/needsReviver.d.ts +0 -0
@@ -77,13 +77,13 @@ test('serialize uses the RFC 3986 path character set without opening escapes', (
77
77
  )
78
78
  t.equal(
79
79
  fastURI.serialize({ path: './a:b/c:d' }),
80
- 'a%3Ab/c:d',
81
- 'escapes a first-segment colon exposed by dot-segment removal'
80
+ './a:b/c:d',
81
+ 'a first-segment colon exposed by dot-segment removal is kept behind a "." segment'
82
82
  )
83
83
  t.equal(
84
84
  fastURI.normalize('./a:b'),
85
- 'a%3Ab',
86
- 'normalization keeps a relative path from becoming a scheme'
85
+ './a:b',
86
+ 'normalization keeps a relative path from becoming a scheme without re-encoding the colon'
87
87
  )
88
88
  t.equal(
89
89
  fastURI.serialize({ path: '/Kſ' }),
@@ -107,3 +107,31 @@ test('equal distinguishes escaped reserved path data from literal syntax', (t) =
107
107
  )
108
108
  t.end()
109
109
  })
110
+
111
+ // A suffix reference never emits its scheme token, so it is a scheme-less
112
+ // (path-noscheme) reference: a bare ':' in its first path segment must be
113
+ // escaped, or the serialized output reparses as an absolute URI with a scheme.
114
+ // @see https://github.com/fastify/fast-uri/security/advisories/GHSA-333x-w4r6-6crp
115
+ test('suffix reference escapes a first-segment colon instead of emitting a scheme', (t) => {
116
+ const dangerous = /^(?:javascript|data|vbscript):/i
117
+ const options = { reference: 'suffix', scheme: 'x' }
118
+
119
+ for (const input of ['javascript:alert(1)', '%6Aavascript:alert(1)', 'data:text/html,x', 'vbscript:msgbox(1)']) {
120
+ t.notOk(dangerous.test(fastURI.normalize(input, options)), `${input} normalizes to an inert reference`)
121
+ }
122
+
123
+ t.equal(
124
+ fastURI.normalize('javascript:alert(1)', options),
125
+ 'javascript%3Aalert(1)',
126
+ 'escapes the leading-segment colon to %3A'
127
+ )
128
+ t.notOk(
129
+ dangerous.test(fastURI.resolve('https://a.example/base/', '%6Aavascript:alert(1)', { reference: 'suffix' })),
130
+ 'resolve in suffix mode does not emit a live scheme'
131
+ )
132
+
133
+ // legitimate suffix usage is unchanged
134
+ t.equal(fastURI.normalize('path/to/file', options), 'path/to/file', 'plain path unchanged')
135
+ t.equal(fastURI.normalize('a/b:c', options), 'a/b:c', 'colon in a later segment stays literal')
136
+ t.end()
137
+ })
@@ -15,7 +15,15 @@ const malformedSchemes = [
15
15
  'foo_bar:value',
16
16
  'éxample:value',
17
17
  'Kttp://example.com/',
18
- 'ſcheme:value'
18
+ 'ſcheme:value',
19
+ // RFC 3986 section 3.1 does not allow percent-encoding in a scheme.
20
+ '%4Aavascript:alert(1)',
21
+ '%6aavascript:alert(1)',
22
+ 'foo%2Bbar:value',
23
+ '%u006Aavascript:1',
24
+ 'ht%74ps://example.com/',
25
+ 'ma%69lto:user@example.org',
26
+ '%64ata:text/html,x'
19
27
  ]
20
28
 
21
29
  test('parse validates the decoded scheme against RFC 3986', (t) => {
@@ -23,10 +31,7 @@ test('parse validates the decoded scheme against RFC 3986', (t) => {
23
31
  ['a:value', 'a'],
24
32
  ['HTTP://example.com/', 'http'],
25
33
  ['a1+.-:value', 'a1+.-'],
26
- ['%4Aavascript:alert(1)', 'javascript'],
27
- ['foo%2Bbar:value', 'foo+bar'],
28
- ['%u006Aavascript:1', 'javascript'],
29
- ['ht%74ps://example.com/', 'https']
34
+ ['foo+bar:value', 'foo+bar']
30
35
  ]
31
36
 
32
37
  for (const [uri, scheme] of validSchemes) {
@@ -42,17 +47,41 @@ test('parse validates the decoded scheme against RFC 3986', (t) => {
42
47
  t.end()
43
48
  })
44
49
 
45
- test('decoded schemes select their scheme handlers', (t) => {
50
+ test('percent-encoded schemes do not select scheme handlers', (t) => {
46
51
  t.equal(
47
52
  fastURI.normalize('ht%74ps://example.com:443'),
48
- 'https://example.com/',
49
- 'HTTP normalization runs after decoding the scheme'
53
+ 'ht%74ps://example.com:443',
54
+ 'HTTP normalization does not run for an encoded scheme'
50
55
  )
51
56
 
52
57
  // 3.x has no mailto scheme handler (added in v4); use the ws handler to
53
- // verify that a percent-encoded scheme still selects its scheme handler
54
- const ws = fastURI.parse('we%62socket://example.com/')
55
- t.equal(ws.scheme, 'websocket', 'ws parsing runs after decoding the scheme')
58
+ // verify that a percent-encoded scheme does not select its scheme handler
59
+ const ws = fastURI.parse('w%73://example.com/a?b')
60
+ t.equal(ws.resourceName, undefined, 'ws parsing does not run for an encoded scheme')
61
+ t.equal(ws.error, MALFORMED_SCHEME_ERROR)
62
+ t.end()
63
+ })
64
+
65
+ test('normalization cannot synthesize a scheme from encoded input', (t) => {
66
+ const inputs = [
67
+ '%6Aavascript:alert(1)',
68
+ '%4A%41%56%41%53%43%52%49%50%54:alert(1)',
69
+ '%u006Aavascript:alert(1)',
70
+ 'j%61vascript:alert(1)',
71
+ '%64ata:text/html,<script>alert(1)</script>',
72
+ 'vb%73cript:msgbox(1)'
73
+ ]
74
+
75
+ for (const uri of inputs) {
76
+ const parsed = fastURI.parse(uri)
77
+ t.equal(parsed.error, MALFORMED_SCHEME_ERROR, uri + ' is malformed')
78
+ t.notOk(/^(?:javascript|data|vbscript):/i.test(String(parsed.scheme) + ':'), uri + ' parsed scheme is not decoded')
79
+ t.equal(fastURI.normalize(uri), uri, uri + ' normalizes to itself')
80
+ t.equal(fastURI.equal(uri, uri), false, uri + ' is not comparable')
81
+ t.throws(() => fastURI.resolve('https://example.com/app/', uri), /URI scheme is malformed\./, uri + ' is rejected by resolve')
82
+ }
83
+
84
+ t.equal(fastURI.equal('%68ttp://a/', 'http://a/'), false, 'encoded scheme does not alias a plain scheme')
56
85
  t.end()
57
86
  })
58
87
 
@@ -95,11 +124,21 @@ test('resolve rejects malformed decoded schemes in either input', (t) => {
95
124
  t.end()
96
125
  })
97
126
 
98
- test('serialize validates decoded component schemes', (t) => {
127
+ test('serialize validates component schemes without decoding them', (t) => {
99
128
  t.equal(
100
- fastURI.serialize({ scheme: 'foo%2Bbar', path: 'value' }),
129
+ fastURI.serialize({ scheme: 'foo+bar', path: 'value' }),
101
130
  'foo+bar:value',
102
- 'valid decoded scheme is serialized'
131
+ 'valid scheme is serialized'
132
+ )
133
+ t.throws(
134
+ () => fastURI.serialize({ scheme: 'foo%2Bbar', path: 'value' }),
135
+ /URI scheme is malformed\./,
136
+ 'percent-encoded scheme is rejected'
137
+ )
138
+ t.throws(
139
+ () => fastURI.serialize({ scheme: '%6Aavascript', path: 'alert(1)' }),
140
+ /URI scheme is malformed\./,
141
+ 'encoded scheme cannot serialize as javascript:'
103
142
  )
104
143
  t.throws(
105
144
  () => fastURI.serialize({ scheme: '//evil.example', path: '/pwn' }),
@@ -17,7 +17,6 @@
17
17
  [![GitHub last commit](https://img.shields.io/github/last-commit/honojs/hono)](https://github.com/honojs/hono/commits/main)
18
18
  [![codecov](https://codecov.io/github/honojs/hono/graph/badge.svg)](https://codecov.io/github/honojs/hono)
19
19
  [![Discord badge](https://img.shields.io/discord/1011308539819597844?label=Discord&logo=Discord)](https://discord.gg/KMh2eNSdxV)
20
- [![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/honojs/hono)
21
20
 
22
21
  Hono - _**means flame🔥 in Japanese**_ - is a small, simple, and ultrafast web framework built on Web Standards. It works on any JavaScript runtime: Cloudflare Workers, Fastly Compute, Deno, Bun, Vercel, AWS Lambda, Lambda@Edge, and Node.js.
23
22
 
@@ -63,9 +62,9 @@ The migration guide is available on [docs/MIGRATION.md](docs/MIGRATION.md).
63
62
  Contributions Welcome! You can contribute in the following ways.
64
63
 
65
64
  - Create an Issue - Propose a new feature. Report a bug.
66
- - Pull Request - Fix a bug or typo. Refactor the code.
67
- - Create third-party middleware - See [Third-party middleware](docs/CONTRIBUTING.md#third-party-middleware).
65
+ - Build middleware and libraries - Grow the Hono ecosystem.
68
66
  - Share - Share your thoughts on the Blog, X, and others.
67
+ - Sponsor - Support the maintainers through GitHub Sponsors: [@yusukebe](https://github.com/sponsors/yusukebe) and [@usualoma](https://github.com/sponsors/usualoma).
69
68
  - Make your application - Please try to use Hono.
70
69
 
71
70
  For more details, see [docs/CONTRIBUTING.md](docs/CONTRIBUTING.md).
@@ -46,7 +46,11 @@ const isValidKeyframeName = (name) => isValidClassName(name) && !RESERVED_KEYFRA
46
46
  const defaultOnInvalidSlug = (slug) => {
47
47
  console.warn(`Invalid slug: ${slug}`);
48
48
  };
49
- const cssStringReStr = ["\"(?:(?:\\\\[\\s\\S]|[^\"\\\\])*)\"", "'(?:(?:\\\\[\\s\\S]|[^'\\\\])*)'"].join("|");
49
+ const cssStringReStr = [
50
+ "\"(?:(?:\\\\[\\s\\S]|[^\"\\\\])*)\"",
51
+ "'(?:(?:\\\\[\\s\\S]|[^'\\\\])*)'",
52
+ "url\\(\\s*[^)\"'\\s]*\\s*\\)"
53
+ ].join("|");
50
54
  const minifyCssRe = new RegExp([
51
55
  "(" + cssStringReStr + ")",
52
56
  "(?:" + [
@@ -56,11 +60,12 @@ const minifyCssRe = new RegExp([
56
60
  "\\s+$"
57
61
  ].join("|") + ")",
58
62
  "\\s*;\\s*(}|$)\\s*",
59
- "\\s*([{};:,])\\s*",
63
+ "\\s*([{};,])\\s*",
64
+ "(:)\\s*",
60
65
  "(\\s)\\s+"
61
66
  ].join("|"), "g");
62
67
  const minify = (css) => {
63
- return css.replace(minifyCssRe, (_, $1, $2, $3, $4) => $1 || $2 || $3 || $4 || "");
68
+ return css.replace(minifyCssRe, (_, $1, $2, $3, $4, $5) => $1 || $2 || $3 || $4 || $5 || "");
64
69
  };
65
70
  const buildStyleString = (strings, values) => {
66
71
  const selectors = [];
@@ -21,7 +21,7 @@ const createCssContext = ({ id, classNameSlug, onInvalidSlug }) => {
21
21
  const [cssJsxDomObject, StyleRenderToDom] = require_jsx_dom_css.createCssJsxDomObjects({ id });
22
22
  const contextMap = /* @__PURE__ */ new WeakMap();
23
23
  const nonceMap = /* @__PURE__ */ new WeakMap();
24
- const replaceStyleRe = new RegExp(`(<style id="${id}"(?: nonce="[^"]*")?>.*?)(</style>)`);
24
+ const replaceStyleRe = new RegExp(`(<style id="${id}"(?: nonce="[^"]*")?>.*?)(</style>)`, "s");
25
25
  const newCssClassNameObject = (cssClassName) => {
26
26
  const appendStyle = ({ buffer, context }) => {
27
27
  const [toAdd, added] = contextMap.get(context);
@@ -111,7 +111,9 @@ const basePath = (c, index) => {
111
111
  const pattern = require_utils_url.getPattern(paths[i], paths[i + 1]);
112
112
  if (pattern) {
113
113
  const re = pattern[2] === true || pattern === "*" ? /[^\/]+/ : pattern[2];
114
- basePathLength += reqPath.substring(basePathLength + 1).match(re)?.[0].length || 0;
114
+ const restPath = reqPath.substring(basePathLength + 1);
115
+ const segment = restPath.split("/", 1)[0];
116
+ basePathLength += (restPath.match(re)?.[0] ?? (re.test(segment) ? segment : "")).length;
115
117
  } else basePathLength += paths[i].length;
116
118
  basePathLength += 1;
117
119
  }
@@ -240,7 +240,7 @@ const cloneElement = (element, props, ...children) => {
240
240
  if (children.length > 0) childrenToClone = children;
241
241
  else {
242
242
  const c = element.props.children;
243
- childrenToClone = Array.isArray(c) ? c : [c];
243
+ childrenToClone = c !== void 0 ? Array.isArray(c) ? c : [c] : [];
244
244
  }
245
245
  return jsx(element.tag, {
246
246
  ...element.props,
@@ -53,6 +53,14 @@ const bearerAuth = (options) => {
53
53
  const wwwAuthenticateHeaderValue = typeof wwwAuthenticateHeader === "function" ? await wwwAuthenticateHeader(c) : wwwAuthenticateHeader;
54
54
  const headers = { "WWW-Authenticate": typeof wwwAuthenticateHeaderValue === "string" ? wwwAuthenticateHeaderValue : `${wwwAuthenticatePrefix}${Object.entries(wwwAuthenticateHeaderValue).map(([key, value]) => `${key}="${value}"`).join(",")}` };
55
55
  const responseMessage = typeof messageOption === "function" ? await messageOption(c) : messageOption;
56
+ if (responseMessage instanceof Response) {
57
+ const resHeaders = new Headers(responseMessage.headers);
58
+ if (!resHeaders.has("WWW-Authenticate")) resHeaders.set("WWW-Authenticate", headers["WWW-Authenticate"]);
59
+ throw new require_http_exception.HTTPException(responseMessage.status, { res: new Response(responseMessage.body, {
60
+ status: responseMessage.status,
61
+ headers: resHeaders
62
+ }) });
63
+ }
56
64
  const res = typeof responseMessage === "string" ? new Response(responseMessage, {
57
65
  status,
58
66
  headers
@@ -1,5 +1,6 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  const require_utils_url = require("../../utils/url.js");
3
+ const require_utils_accept = require("../../utils/accept.js");
3
4
  const require_utils_compress = require("../../utils/compress.js");
4
5
  const require_utils_mime = require("../../utils/mime.js");
5
6
  const require_middleware_serve_static_path = require("./path.js");
@@ -20,6 +21,7 @@ const serveStatic = (options) => {
20
21
  const join = options.join ?? require_middleware_serve_static_path.defaultJoin;
21
22
  return async (c, next) => {
22
23
  if (c.finalized) return next();
24
+ if (c.req.method !== "GET" && c.req.method !== "HEAD") return next();
23
25
  let filename;
24
26
  if (options.path) filename = options.path;
25
27
  else try {
@@ -39,7 +41,7 @@ const serveStatic = (options) => {
39
41
  const mimeType = options.mimes && require_utils_mime.getMimeType(path, options.mimes) || require_utils_mime.getMimeType(path);
40
42
  c.header("Content-Type", mimeType || "application/octet-stream");
41
43
  if (options.precompressed && (!mimeType || require_utils_compress.COMPRESSIBLE_CONTENT_TYPE_REGEX.test(mimeType))) {
42
- const acceptEncodingSet = new Set(c.req.header("Accept-Encoding")?.split(",").map((encoding) => encoding.trim()));
44
+ const acceptEncodingSet = new Set(require_utils_accept.parseAccept(c.req.header("Accept-Encoding") ?? "").filter((encoding) => encoding.q > 0).map((encoding) => encoding.type));
43
45
  for (const encoding of ENCODINGS_ORDERED_KEYS) {
44
46
  if (!acceptEncodingSet.has(encoding)) continue;
45
47
  const compressedContent = await getContent(path + ENCODINGS[encoding], c);
@@ -98,7 +98,7 @@ var Node = class Node {
98
98
  const restPathString = path.slice(partOffsets[i]);
99
99
  const m = matcher.exec(restPathString);
100
100
  if (m) {
101
- params[name] = m[0];
101
+ if (!Object.hasOwn(params, name)) params[name] = m[0];
102
102
  this.#pushHandlerSets(handlerSets, child, method, node.#params, params);
103
103
  if (m[0].length === restPathString.length && child.#children["*"]) this.#pushHandlerSets(handlerSets, child.#children["*"], method, node.#params, params);
104
104
  for (const _ in child.#children) {
@@ -111,7 +111,7 @@ var Node = class Node {
111
111
  }
112
112
  }
113
113
  if (matcher === true || matcher.test(part)) {
114
- params[name] = part;
114
+ if (!Object.hasOwn(params, name)) params[name] = part;
115
115
  if (isLast) {
116
116
  this.#pushHandlerSets(handlerSets, child, method, params, node.#params);
117
117
  if (child.#children["*"]) this.#pushHandlerSets(handlerSets, child.#children["*"], method, params, node.#params);
@@ -154,16 +154,21 @@ const _getQueryParam = (url, key, multiple) => {
154
154
  if (hashIndex !== -1) url = url.slice(0, hashIndex);
155
155
  let encoded;
156
156
  if (!multiple && key && key.indexOf("%") === -1 && key.indexOf("+") === -1) {
157
- let keyIndex = url.indexOf("?", 8);
157
+ const queryIndex = url.indexOf("?", 8);
158
+ let keyIndex = queryIndex;
158
159
  if (keyIndex === -1) return;
159
160
  if (!url.startsWith(key, keyIndex + 1)) keyIndex = url.indexOf(`&${key}`, keyIndex + 1);
160
161
  while (keyIndex !== -1) {
161
162
  const trailingKeyCode = url.charCodeAt(keyIndex + key.length + 1);
162
- if (trailingKeyCode === 61) {
163
- const valueIndex = keyIndex + key.length + 2;
164
- const endIndex = url.indexOf("&", valueIndex);
165
- return _decodeURI(url.slice(valueIndex, endIndex === -1 ? void 0 : endIndex));
166
- } else if (trailingKeyCode == 38 || isNaN(trailingKeyCode)) return "";
163
+ if (trailingKeyCode === 61 || trailingKeyCode === 38 || isNaN(trailingKeyCode)) {
164
+ if (keyIndex > queryIndex && /(?:^|&)[^=&]*[%+]/.test(url.slice(queryIndex + 1, keyIndex))) break;
165
+ if (trailingKeyCode === 61) {
166
+ const valueIndex = keyIndex + key.length + 2;
167
+ const endIndex = url.indexOf("&", valueIndex);
168
+ return _decodeURI(url.slice(valueIndex, endIndex === -1 ? void 0 : endIndex));
169
+ }
170
+ return "";
171
+ }
167
172
  keyIndex = url.indexOf(`&${key}`, keyIndex + 1);
168
173
  }
169
174
  encoded = /[%+]/.test(url);
@@ -45,7 +45,11 @@ const isValidKeyframeName = (name) => isValidClassName(name) && !RESERVED_KEYFRA
45
45
  const defaultOnInvalidSlug = (slug) => {
46
46
  console.warn(`Invalid slug: ${slug}`);
47
47
  };
48
- const cssStringReStr = ["\"(?:(?:\\\\[\\s\\S]|[^\"\\\\])*)\"", "'(?:(?:\\\\[\\s\\S]|[^'\\\\])*)'"].join("|");
48
+ const cssStringReStr = [
49
+ "\"(?:(?:\\\\[\\s\\S]|[^\"\\\\])*)\"",
50
+ "'(?:(?:\\\\[\\s\\S]|[^'\\\\])*)'",
51
+ "url\\(\\s*[^)\"'\\s]*\\s*\\)"
52
+ ].join("|");
49
53
  const minifyCssRe = new RegExp([
50
54
  "(" + cssStringReStr + ")",
51
55
  "(?:" + [
@@ -55,11 +59,12 @@ const minifyCssRe = new RegExp([
55
59
  "\\s+$"
56
60
  ].join("|") + ")",
57
61
  "\\s*;\\s*(}|$)\\s*",
58
- "\\s*([{};:,])\\s*",
62
+ "\\s*([{};,])\\s*",
63
+ "(:)\\s*",
59
64
  "(\\s)\\s+"
60
65
  ].join("|"), "g");
61
66
  const minify = (css) => {
62
- return css.replace(minifyCssRe, (_, $1, $2, $3, $4) => $1 || $2 || $3 || $4 || "");
67
+ return css.replace(minifyCssRe, (_, $1, $2, $3, $4, $5) => $1 || $2 || $3 || $4 || $5 || "");
63
68
  };
64
69
  const buildStyleString = (strings, values) => {
65
70
  const selectors = [];
@@ -20,7 +20,7 @@ const createCssContext = ({ id, classNameSlug, onInvalidSlug }) => {
20
20
  const [cssJsxDomObject, StyleRenderToDom] = createCssJsxDomObjects({ id });
21
21
  const contextMap = /* @__PURE__ */ new WeakMap();
22
22
  const nonceMap = /* @__PURE__ */ new WeakMap();
23
- const replaceStyleRe = new RegExp(`(<style id="${id}"(?: nonce="[^"]*")?>.*?)(</style>)`);
23
+ const replaceStyleRe = new RegExp(`(<style id="${id}"(?: nonce="[^"]*")?>.*?)(</style>)`, "s");
24
24
  const newCssClassNameObject = (cssClassName) => {
25
25
  const appendStyle = ({ buffer, context }) => {
26
26
  const [toAdd, added] = contextMap.get(context);
@@ -110,7 +110,9 @@ const basePath = (c, index) => {
110
110
  const pattern = getPattern(paths[i], paths[i + 1]);
111
111
  if (pattern) {
112
112
  const re = pattern[2] === true || pattern === "*" ? /[^\/]+/ : pattern[2];
113
- basePathLength += reqPath.substring(basePathLength + 1).match(re)?.[0].length || 0;
113
+ const restPath = reqPath.substring(basePathLength + 1);
114
+ const segment = restPath.split("/", 1)[0];
115
+ basePathLength += (restPath.match(re)?.[0] ?? (re.test(segment) ? segment : "")).length;
114
116
  } else basePathLength += paths[i].length;
115
117
  basePathLength += 1;
116
118
  }
@@ -239,7 +239,7 @@ const cloneElement = (element, props, ...children) => {
239
239
  if (children.length > 0) childrenToClone = children;
240
240
  else {
241
241
  const c = element.props.children;
242
- childrenToClone = Array.isArray(c) ? c : [c];
242
+ childrenToClone = c !== void 0 ? Array.isArray(c) ? c : [c] : [];
243
243
  }
244
244
  return jsx(element.tag, {
245
245
  ...element.props,
@@ -52,6 +52,14 @@ const bearerAuth = (options) => {
52
52
  const wwwAuthenticateHeaderValue = typeof wwwAuthenticateHeader === "function" ? await wwwAuthenticateHeader(c) : wwwAuthenticateHeader;
53
53
  const headers = { "WWW-Authenticate": typeof wwwAuthenticateHeaderValue === "string" ? wwwAuthenticateHeaderValue : `${wwwAuthenticatePrefix}${Object.entries(wwwAuthenticateHeaderValue).map(([key, value]) => `${key}="${value}"`).join(",")}` };
54
54
  const responseMessage = typeof messageOption === "function" ? await messageOption(c) : messageOption;
55
+ if (responseMessage instanceof Response) {
56
+ const resHeaders = new Headers(responseMessage.headers);
57
+ if (!resHeaders.has("WWW-Authenticate")) resHeaders.set("WWW-Authenticate", headers["WWW-Authenticate"]);
58
+ throw new HTTPException(responseMessage.status, { res: new Response(responseMessage.body, {
59
+ status: responseMessage.status,
60
+ headers: resHeaders
61
+ }) });
62
+ }
55
63
  const res = typeof responseMessage === "string" ? new Response(responseMessage, {
56
64
  status,
57
65
  headers
@@ -1,4 +1,5 @@
1
1
  import { tryDecodeURI } from "../../utils/url.js";
2
+ import { parseAccept } from "../../utils/accept.js";
2
3
  import { COMPRESSIBLE_CONTENT_TYPE_REGEX } from "../../utils/compress.js";
3
4
  import { getMimeType } from "../../utils/mime.js";
4
5
  import { defaultJoin } from "./path.js";
@@ -19,6 +20,7 @@ const serveStatic = (options) => {
19
20
  const join = options.join ?? defaultJoin;
20
21
  return async (c, next) => {
21
22
  if (c.finalized) return next();
23
+ if (c.req.method !== "GET" && c.req.method !== "HEAD") return next();
22
24
  let filename;
23
25
  if (options.path) filename = options.path;
24
26
  else try {
@@ -38,7 +40,7 @@ const serveStatic = (options) => {
38
40
  const mimeType = options.mimes && getMimeType(path, options.mimes) || getMimeType(path);
39
41
  c.header("Content-Type", mimeType || "application/octet-stream");
40
42
  if (options.precompressed && (!mimeType || COMPRESSIBLE_CONTENT_TYPE_REGEX.test(mimeType))) {
41
- const acceptEncodingSet = new Set(c.req.header("Accept-Encoding")?.split(",").map((encoding) => encoding.trim()));
43
+ const acceptEncodingSet = new Set(parseAccept(c.req.header("Accept-Encoding") ?? "").filter((encoding) => encoding.q > 0).map((encoding) => encoding.type));
42
44
  for (const encoding of ENCODINGS_ORDERED_KEYS) {
43
45
  if (!acceptEncodingSet.has(encoding)) continue;
44
46
  const compressedContent = await getContent(path + ENCODINGS[encoding], c);
@@ -97,7 +97,7 @@ var Node = class Node {
97
97
  const restPathString = path.slice(partOffsets[i]);
98
98
  const m = matcher.exec(restPathString);
99
99
  if (m) {
100
- params[name] = m[0];
100
+ if (!Object.hasOwn(params, name)) params[name] = m[0];
101
101
  this.#pushHandlerSets(handlerSets, child, method, node.#params, params);
102
102
  if (m[0].length === restPathString.length && child.#children["*"]) this.#pushHandlerSets(handlerSets, child.#children["*"], method, node.#params, params);
103
103
  for (const _ in child.#children) {
@@ -110,7 +110,7 @@ var Node = class Node {
110
110
  }
111
111
  }
112
112
  if (matcher === true || matcher.test(part)) {
113
- params[name] = part;
113
+ if (!Object.hasOwn(params, name)) params[name] = part;
114
114
  if (isLast) {
115
115
  this.#pushHandlerSets(handlerSets, child, method, params, node.#params);
116
116
  if (child.#children["*"]) this.#pushHandlerSets(handlerSets, child.#children["*"], method, params, node.#params);
@@ -1,4 +1,4 @@
1
- import { GetConnInfo } from "../../helper/conninfo/types.js";
1
+ import { GetConnInfo } from "../../helper/conninfo/index.js";
2
2
  //#region src/adapter/aws-lambda/conninfo.d.ts
3
3
  /**
4
4
  * Get connection information from AWS Lambda
@@ -1,4 +1,4 @@
1
- import { GetConnInfo } from "../../helper/conninfo/types.js";
1
+ import { GetConnInfo } from "../../helper/conninfo/index.js";
2
2
  //#region src/adapter/bun/conninfo.d.ts
3
3
  /**
4
4
  * Get ConnInfo with Bun
@@ -1,4 +1,4 @@
1
- import { FileSystemModule, ToSSGAdaptorInterface } from "../../helper/ssg/ssg.js";
1
+ import { FileSystemModule, ToSSGAdaptorInterface } from "../../helper/ssg/index.js";
2
2
  //#region src/adapter/bun/ssg.d.ts
3
3
  /**
4
4
  * @experimental
@@ -1,4 +1,4 @@
1
- import { GetConnInfo } from "../../helper/conninfo/types.js";
1
+ import { GetConnInfo } from "../../helper/conninfo/index.js";
2
2
  //#region src/adapter/cloudflare-pages/conninfo.d.ts
3
3
  /**
4
4
  * Get connection information from Cloudflare Pages
@@ -1,4 +1,4 @@
1
- import { GetConnInfo } from "../../helper/conninfo/types.js";
1
+ import { GetConnInfo } from "../../helper/conninfo/index.js";
2
2
  //#region src/adapter/cloudflare-workers/conninfo.d.ts
3
3
  /**
4
4
  * @deprecated `hono/cloudflare-workers` will be removed in v5. Install `@hono/cloudflare-workers` and import from there instead.
@@ -1,4 +1,4 @@
1
- import { GetConnInfo } from "../../helper/conninfo/types.js";
1
+ import { GetConnInfo } from "../../helper/conninfo/index.js";
2
2
  //#region src/adapter/deno/conninfo.d.ts
3
3
  /**
4
4
  * Get conninfo with Deno
@@ -1,4 +1,4 @@
1
- import { FileSystemModule, ToSSGAdaptorInterface } from "../../helper/ssg/ssg.js";
1
+ import { FileSystemModule, ToSSGAdaptorInterface } from "../../helper/ssg/index.js";
2
2
  //#region src/adapter/deno/ssg.d.ts
3
3
  /**
4
4
  * @experimental
@@ -1,4 +1,4 @@
1
- import { GetConnInfo } from "../../helper/conninfo/types.js";
1
+ import { GetConnInfo } from "../../helper/conninfo/index.js";
2
2
  //#region src/adapter/lambda-edge/conninfo.d.ts
3
3
  /**
4
4
  * @deprecated `hono/lambda-edge` will be removed in v5. Install `@hono/lambda-edge` and import from there instead.
@@ -1,4 +1,4 @@
1
- import { GetConnInfo } from "../../helper/conninfo/types.js";
1
+ import { GetConnInfo } from "../../helper/conninfo/index.js";
2
2
  //#region src/adapter/netlify/conninfo.d.ts
3
3
  /**
4
4
  * Get connection information from Netlify
@@ -1,4 +1,4 @@
1
- import { GetConnInfo } from "../../helper/conninfo/types.js";
1
+ import { GetConnInfo } from "../../helper/conninfo/index.js";
2
2
  //#region src/adapter/vercel/conninfo.d.ts
3
3
  /**
4
4
  * @deprecated `hono/vercel` will be removed in v5. Install `@hono/vercel` and import from there instead.
@@ -2,7 +2,8 @@ import { UnionToIntersection } from "../../utils/types.js";
2
2
  import { Schema } from "../../types.js";
3
3
  import { ExecutionContext } from "../../context.js";
4
4
  import { Hono } from "../../hono.js";
5
- import { Client, ClientRequestOptions } from "../../client/types.js";
5
+ import { ClientRequestOptions } from "../../client/index.js";
6
+ import { Client } from "../../client/types.js";
6
7
  //#region src/helper/testing/index.d.ts
7
8
  type ExtractEnv<T> = T extends Hono<infer E, Schema, string> ? E : never;
8
9
  export declare const testClient: <T extends Hono<any, Schema, string>>(app: T, Env?: ExtractEnv<T>["Bindings"] | {}, executionCtx?: ExecutionContext, options?: Omit<ClientRequestOptions, "fetch">) => UnionToIntersection<Client<T, "http://localhost">>;
@@ -6,14 +6,6 @@ type GetPath<E extends Env> = (request: Request, options?: {
6
6
  env?: E['Bindings'];
7
7
  }) => string;
8
8
  export type HonoOptions<E extends Env> = {
9
- /**
10
- * `strict` option specifies whether to distinguish whether the last path is a directory or not.
11
- *
12
- * @see {@link https://hono.dev/docs/api/hono#strict-mode}
13
- *
14
- * @default true
15
- */
16
- strict?: boolean;
17
9
  /**
18
10
  * `router` option specifies which router to use.
19
11
  *
@@ -25,6 +17,15 @@ export type HonoOptions<E extends Env> = {
25
17
  * ```
26
18
  */
27
19
  router?: Router<[H, RouterRoute]>;
20
+ } & ({
21
+ /**
22
+ * `strict` option specifies whether to distinguish whether the last path is a directory or not.
23
+ *
24
+ * @see {@link https://hono.dev/docs/api/hono#strict-mode}
25
+ *
26
+ * @default true
27
+ */
28
+ strict?: true;
28
29
  /**
29
30
  * `getPath` can handle the host header value.
30
31
  *
@@ -46,7 +47,18 @@ export type HonoOptions<E extends Env> = {
46
47
  * ```
47
48
  */
48
49
  getPath?: GetPath<E>;
49
- };
50
+ } | {
51
+ /**
52
+ * `strict` option specifies whether to distinguish whether the last path is a directory or not.
53
+ * When `strict` is `false`, `getPath` is not used.
54
+ *
55
+ * @see {@link https://hono.dev/docs/api/hono#strict-mode}
56
+ *
57
+ * @default true
58
+ */
59
+ strict: false;
60
+ getPath?: never;
61
+ });
50
62
  type MountOptionHandler = (c: Context) => unknown;
51
63
  type MountReplaceRequest = (originalRequest: Request) => Request;
52
64
  type MountOptions = MountOptionHandler | {
@@ -2,5 +2,5 @@ import { Env, ErrorHandler, Handler, Input, MiddlewareHandler, Next, NotFoundHan
2
2
  import { HonoRequest } from "./request.js";
3
3
  import { Context, ContextRenderer, ContextVariableMap, ExecutionContext } from "./context.js";
4
4
  import { Hono } from "./hono.js";
5
- import { ClientRequestOptions, InferRequestType, InferResponseType } from "./client/types.js";
5
+ import { ClientRequestOptions, InferRequestType, InferResponseType } from "./client/index.js";
6
6
  export { type ClientRequestOptions, Context, type ContextRenderer, type ContextVariableMap, type Env, type ErrorHandler, type ExecutionContext, type Handler, Hono, type HonoRequest, type InferRequestType, type InferResponseType, type Input, type MiddlewareHandler, type Next, type NotFoundHandler, type NotFoundResponse, type Schema, type ToSchema, type TypedResponse, type ValidationTargets };
@@ -1,6 +1,6 @@
1
1
  import { HtmlEscapedString } from "../utils/html.js";
2
- import { PropsWithChildren } from "./types.js";
3
- import { Child, FC } from "./base.js";
2
+ import { PropsWithChildren } from "./index.js";
3
+ import { Child, FC } from "./index.js";
4
4
  //#region src/jsx/components.d.ts
5
5
  export declare const childrenToString: (children: Child[]) => Promise<HtmlEscapedString[]>;
6
6
  export type ErrorHandler = (error: Error) => void;
@@ -1,5 +1,5 @@
1
- import { PropsWithChildren } from "./types.js";
2
- import { FC } from "./base.js";
1
+ import { PropsWithChildren } from "./index.js";
2
+ import { FC } from "./index.js";
3
3
  //#region src/jsx/context.d.ts
4
4
  export interface Context<T> extends FC<PropsWithChildren<{
5
5
  value: T;
@@ -1,6 +1,6 @@
1
1
  import { ErrorHandler, FallbackRender } from "../components.js";
2
- import { PropsWithChildren } from "../types.js";
3
- import { Child, FC } from "../base.js";
2
+ import { PropsWithChildren } from "../index.js";
3
+ import { Child, FC } from "../index.js";
4
4
  //#region src/jsx/dom/components.d.ts
5
5
  export declare const ErrorBoundary: FC<PropsWithChildren<{
6
6
  fallback?: Child;
@@ -1,6 +1,6 @@
1
1
  import { ClassNameSlug, CssClassName, CssVariableType, OnInvalidSlug, rawCssString } from "../../helper/css/common.js";
2
- import { PropsWithChildren } from "../types.js";
3
- import { FC } from "../base.js";
2
+ import { PropsWithChildren } from "../index.js";
3
+ import { FC } from "../index.js";
4
4
  //#region src/jsx/dom/css.d.ts
5
5
  interface CreateCssJsxDomObjectsType {
6
6
  (args: {