hono 4.6.1 → 4.6.3

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 (63) hide show
  1. package/dist/adapter/bun/serve-static.js +3 -3
  2. package/dist/adapter/deno/serve-static.js +1 -1
  3. package/dist/cjs/adapter/bun/serve-static.js +3 -3
  4. package/dist/cjs/adapter/deno/serve-static.js +1 -1
  5. package/dist/cjs/helper/ssg/middleware.js +1 -1
  6. package/dist/cjs/helper/streaming/sse.js +1 -1
  7. package/dist/cjs/jsx/base.js +5 -3
  8. package/dist/cjs/jsx/dom/hooks/index.js +2 -2
  9. package/dist/cjs/jsx/dom/index.js +1 -1
  10. package/dist/cjs/jsx/dom/intrinsic-element/components.js +2 -2
  11. package/dist/cjs/jsx/dom/render.js +1 -1
  12. package/dist/cjs/jsx/index.js +46 -46
  13. package/dist/cjs/jsx/intrinsic-element/components.js +3 -3
  14. package/dist/cjs/jsx/jsx-runtime.js +28 -1
  15. package/dist/cjs/jsx/streaming.js +7 -4
  16. package/dist/cjs/middleware/combine/index.js +3 -2
  17. package/dist/cjs/middleware/compress/index.js +2 -2
  18. package/dist/cjs/middleware/secure-headers/secure-headers.js +8 -1
  19. package/dist/cjs/middleware/serve-static/index.js +25 -12
  20. package/dist/cjs/router/pattern-router/router.js +1 -1
  21. package/dist/cjs/utils/compress.js +28 -0
  22. package/dist/cjs/utils/cookie.js +1 -1
  23. package/dist/cjs/utils/filepath.js +3 -0
  24. package/dist/cjs/utils/jwt/jwt.js +1 -1
  25. package/dist/cjs/utils/stream.js +2 -2
  26. package/dist/helper/ssg/middleware.js +1 -1
  27. package/dist/helper/streaming/sse.js +1 -1
  28. package/dist/jsx/base.js +4 -3
  29. package/dist/jsx/dom/hooks/index.js +2 -2
  30. package/dist/jsx/dom/index.js +1 -1
  31. package/dist/jsx/dom/intrinsic-element/components.js +2 -2
  32. package/dist/jsx/dom/render.js +1 -1
  33. package/dist/jsx/index.js +1 -1
  34. package/dist/jsx/intrinsic-element/components.js +3 -3
  35. package/dist/jsx/jsx-runtime.js +28 -1
  36. package/dist/jsx/streaming.js +7 -4
  37. package/dist/middleware/combine/index.js +3 -2
  38. package/dist/middleware/compress/index.js +2 -2
  39. package/dist/middleware/secure-headers/secure-headers.js +8 -1
  40. package/dist/middleware/serve-static/index.js +25 -12
  41. package/dist/router/pattern-router/router.js +1 -1
  42. package/dist/types/context.d.ts +1 -1
  43. package/dist/types/jsx/base.d.ts +1 -0
  44. package/dist/types/jsx/dom/index.d.ts +2 -2
  45. package/dist/types/jsx/dom/intrinsic-element/components.d.ts +1 -1
  46. package/dist/types/jsx/dom/server.d.ts +1 -1
  47. package/dist/types/jsx/hooks/index.d.ts +1 -1
  48. package/dist/types/jsx/index.d.ts +2 -2
  49. package/dist/types/jsx/intrinsic-element/components.d.ts +1 -1
  50. package/dist/types/jsx/jsx-runtime.d.ts +1 -1
  51. package/dist/types/jsx/streaming.d.ts +2 -1
  52. package/dist/types/middleware/jwt/jwt.d.ts +2 -2
  53. package/dist/types/middleware/secure-headers/secure-headers.d.ts +2 -0
  54. package/dist/types/types.d.ts +23 -23
  55. package/dist/types/utils/compress.d.ts +8 -0
  56. package/dist/types/utils/types.d.ts +3 -1
  57. package/dist/utils/compress.js +5 -0
  58. package/dist/utils/cookie.js +1 -1
  59. package/dist/utils/filepath.js +3 -0
  60. package/dist/utils/jwt/jwt.js +1 -1
  61. package/dist/utils/stream.js +2 -2
  62. package/package.json +15 -15
  63. package/perf-measures/type-check/generated/.gitkeep +0 -0
@@ -37,21 +37,21 @@ export interface HTTPResponseError extends Error {
37
37
  }
38
38
  export type ErrorHandler<E extends Env = any> = (err: Error | HTTPResponseError, c: Context<E>) => Response | Promise<Response>;
39
39
  export interface HandlerInterface<E extends Env = Env, M extends string = string, S extends Schema = BlankSchema, BasePath extends string = '/'> {
40
- <P extends string = ExtractKey<S> extends never ? BasePath : ExtractKey<S>, I extends Input = BlankInput, R extends HandlerResponse<any> = any, E2 extends Env = E>(handler: H<E2, P, I, R>): Hono<IntersectNonAnyTypes<[E, E2]>, S & ToSchema<M, P, I, MergeTypedResponse<R>>, BasePath>;
41
- <P extends string = ExtractKey<S> extends never ? BasePath : ExtractKey<S>, I extends Input = BlankInput, I2 extends Input = I, R extends HandlerResponse<any> = any, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>>(...handlers: [H<E2, P, I>, H<E3, P, I2, R>]): Hono<IntersectNonAnyTypes<[E, E2, E3]>, S & ToSchema<M, P, I2, MergeTypedResponse<R>>, BasePath>;
40
+ <P extends string = ExtractStringKey<S> extends never ? BasePath : ExtractStringKey<S>, I extends Input = BlankInput, R extends HandlerResponse<any> = any, E2 extends Env = E>(handler: H<E2, P, I, R>): Hono<IntersectNonAnyTypes<[E, E2]>, S & ToSchema<M, P, I, MergeTypedResponse<R>>, BasePath>;
41
+ <P extends string = ExtractStringKey<S> extends never ? BasePath : ExtractStringKey<S>, I extends Input = BlankInput, I2 extends Input = I, R extends HandlerResponse<any> = any, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>>(...handlers: [H<E2, P, I>, H<E3, P, I2, R>]): Hono<IntersectNonAnyTypes<[E, E2, E3]>, S & ToSchema<M, P, I2, MergeTypedResponse<R>>, BasePath>;
42
42
  <P extends string, MergedPath extends MergePath<BasePath, P> = MergePath<BasePath, P>, R extends HandlerResponse<any> = any, I extends Input = BlankInput, E2 extends Env = E>(path: P, handler: H<E2, MergedPath, I, R>): Hono<E, S & ToSchema<M, MergePath<BasePath, P>, I, MergeTypedResponse<R>>, BasePath>;
43
- <P extends string = ExtractKey<S> extends never ? BasePath : ExtractKey<S>, R extends HandlerResponse<any> = any, I extends Input = BlankInput, I2 extends Input = I, I3 extends Input = I & I2, E2 extends Env = E, E3 extends Env = E, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>>(...handlers: [H<E2, P, I>, H<E3, P, I2>, H<E4, P, I3, R>]): Hono<IntersectNonAnyTypes<[E, E2, E3, E4]>, S & ToSchema<M, P, I3, MergeTypedResponse<R>>, BasePath>;
43
+ <P extends string = ExtractStringKey<S> extends never ? BasePath : ExtractStringKey<S>, R extends HandlerResponse<any> = any, I extends Input = BlankInput, I2 extends Input = I, I3 extends Input = I & I2, E2 extends Env = E, E3 extends Env = E, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>>(...handlers: [H<E2, P, I>, H<E3, P, I2>, H<E4, P, I3, R>]): Hono<IntersectNonAnyTypes<[E, E2, E3, E4]>, S & ToSchema<M, P, I3, MergeTypedResponse<R>>, BasePath>;
44
44
  <P extends string, MergedPath extends MergePath<BasePath, P> = MergePath<BasePath, P>, R extends HandlerResponse<any> = any, I extends Input = BlankInput, I2 extends Input = I, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>>(path: P, ...handlers: [H<E2, MergedPath, I>, H<E3, MergedPath, I2, R>]): Hono<E, S & ToSchema<M, MergePath<BasePath, P>, I2, MergeTypedResponse<R>>, BasePath>;
45
- <P extends string = ExtractKey<S> extends never ? BasePath : ExtractKey<S>, R extends HandlerResponse<any> = any, I extends Input = BlankInput, I2 extends Input = I, I3 extends Input = I & I2, I4 extends Input = I & I2 & I3, E2 extends Env = E, E3 extends Env = E, E4 extends Env = E, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>>(...handlers: [H<E2, P, I>, H<E3, P, I2>, H<E4, P, I3>, H<E5, P, I4, R>]): Hono<IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, S & ToSchema<M, P, I4, MergeTypedResponse<R>>, BasePath>;
45
+ <P extends string = ExtractStringKey<S> extends never ? BasePath : ExtractStringKey<S>, R extends HandlerResponse<any> = any, I extends Input = BlankInput, I2 extends Input = I, I3 extends Input = I & I2, I4 extends Input = I & I2 & I3, E2 extends Env = E, E3 extends Env = E, E4 extends Env = E, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>>(...handlers: [H<E2, P, I>, H<E3, P, I2>, H<E4, P, I3>, H<E5, P, I4, R>]): Hono<IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, S & ToSchema<M, P, I4, MergeTypedResponse<R>>, BasePath>;
46
46
  <P extends string, MergedPath extends MergePath<BasePath, P> = MergePath<BasePath, P>, R extends HandlerResponse<any> = any, I extends Input = BlankInput, I2 extends Input = I, I3 extends Input = I & I2, E2 extends Env = E, E3 extends Env = E, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>>(path: P, ...handlers: [H<E2, MergedPath, I>, H<E3, MergedPath, I2>, H<E4, MergedPath, I3, R>]): Hono<E, S & ToSchema<M, MergePath<BasePath, P>, I3, MergeTypedResponse<R>>, BasePath>;
47
- <P extends string = ExtractKey<S> extends never ? BasePath : ExtractKey<S>, R extends HandlerResponse<any> = any, I extends Input = BlankInput, I2 extends Input = I, I3 extends Input = I & I2, I4 extends Input = I & I2 & I3, I5 extends Input = I & I2 & I3 & I4, E2 extends Env = E, E3 extends Env = E, E4 extends Env = E, E5 extends Env = E, E6 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5]>>(...handlers: [H<E2, P, I>, H<E3, P, I2>, H<E4, P, I3>, H<E5, P, I4>, H<E6, P, I5, R>]): Hono<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>, S & ToSchema<M, P, I5, MergeTypedResponse<R>>, BasePath>;
47
+ <P extends string = ExtractStringKey<S> extends never ? BasePath : ExtractStringKey<S>, R extends HandlerResponse<any> = any, I extends Input = BlankInput, I2 extends Input = I, I3 extends Input = I & I2, I4 extends Input = I & I2 & I3, I5 extends Input = I & I2 & I3 & I4, E2 extends Env = E, E3 extends Env = E, E4 extends Env = E, E5 extends Env = E, E6 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5]>>(...handlers: [H<E2, P, I>, H<E3, P, I2>, H<E4, P, I3>, H<E5, P, I4>, H<E6, P, I5, R>]): Hono<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>, S & ToSchema<M, P, I5, MergeTypedResponse<R>>, BasePath>;
48
48
  <P extends string, MergedPath extends MergePath<BasePath, P> = MergePath<BasePath, P>, R extends HandlerResponse<any> = any, I extends Input = BlankInput, I2 extends Input = I, I3 extends Input = I & I2, I4 extends Input = I & I2 & I3, E2 extends Env = E, E3 extends Env = E, E4 extends Env = E, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>>(path: P, ...handlers: [
49
49
  H<E2, MergedPath, I>,
50
50
  H<E3, MergedPath, I2>,
51
51
  H<E4, MergedPath, I3>,
52
52
  H<E5, MergedPath, I4, R>
53
53
  ]): Hono<E, S & ToSchema<M, MergePath<BasePath, P>, I4, MergeTypedResponse<R>>, BasePath>;
54
- <P extends string = ExtractKey<S> extends never ? BasePath : ExtractKey<S>, R extends HandlerResponse<any> = any, I extends Input = BlankInput, I2 extends Input = I, I3 extends Input = I & I2, I4 extends Input = I & I2 & I3, I5 extends Input = I & I2 & I3 & I4, I6 extends Input = I & I2 & I3 & I4 & I5, E2 extends Env = E, E3 extends Env = E, E4 extends Env = E, E5 extends Env = E, E6 extends Env = E, E7 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>>(...handlers: [
54
+ <P extends string = ExtractStringKey<S> extends never ? BasePath : ExtractStringKey<S>, R extends HandlerResponse<any> = any, I extends Input = BlankInput, I2 extends Input = I, I3 extends Input = I & I2, I4 extends Input = I & I2 & I3, I5 extends Input = I & I2 & I3 & I4, I6 extends Input = I & I2 & I3 & I4 & I5, E2 extends Env = E, E3 extends Env = E, E4 extends Env = E, E5 extends Env = E, E6 extends Env = E, E7 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>>(...handlers: [
55
55
  H<E2, P, I>,
56
56
  H<E3, P, I2>,
57
57
  H<E4, P, I3>,
@@ -66,7 +66,7 @@ export interface HandlerInterface<E extends Env = Env, M extends string = string
66
66
  H<E5, MergedPath, I4>,
67
67
  H<E6, MergedPath, I5, R>
68
68
  ]): Hono<E, S & ToSchema<M, MergePath<BasePath, P>, I5, MergeTypedResponse<R>>, BasePath>;
69
- <P extends string = ExtractKey<S> extends never ? BasePath : ExtractKey<S>, R extends HandlerResponse<any> = any, I extends Input = BlankInput, I2 extends Input = I, I3 extends Input = I & I2, I4 extends Input = I & I2 & I3, I5 extends Input = I & I2 & I3 & I4, I6 extends Input = I & I2 & I3 & I4 & I5, I7 extends Input = I & I2 & I3 & I4 & I5 & I6, E2 extends Env = E, E3 extends Env = E, E4 extends Env = E, E5 extends Env = E, E6 extends Env = E, E7 extends Env = E, E8 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7]>>(...handlers: [
69
+ <P extends string = ExtractStringKey<S> extends never ? BasePath : ExtractStringKey<S>, R extends HandlerResponse<any> = any, I extends Input = BlankInput, I2 extends Input = I, I3 extends Input = I & I2, I4 extends Input = I & I2 & I3, I5 extends Input = I & I2 & I3 & I4, I6 extends Input = I & I2 & I3 & I4 & I5, I7 extends Input = I & I2 & I3 & I4 & I5 & I6, E2 extends Env = E, E3 extends Env = E, E4 extends Env = E, E5 extends Env = E, E6 extends Env = E, E7 extends Env = E, E8 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7]>>(...handlers: [
70
70
  H<E2, P, I>,
71
71
  H<E3, P, I2>,
72
72
  H<E4, P, I3>,
@@ -83,7 +83,7 @@ export interface HandlerInterface<E extends Env = Env, M extends string = string
83
83
  H<E6, MergedPath, I5>,
84
84
  H<E7, MergedPath, I6, R>
85
85
  ]): Hono<E, S & ToSchema<M, MergePath<BasePath, P>, I6, MergeTypedResponse<R>>, BasePath>;
86
- <P extends string = ExtractKey<S> extends never ? BasePath : ExtractKey<S>, R extends HandlerResponse<any> = any, I extends Input = BlankInput, I2 extends Input = I, I3 extends Input = I & I2, I4 extends Input = I & I2 & I3, I5 extends Input = I & I2 & I3 & I4, I6 extends Input = I & I2 & I3 & I4 & I5, I7 extends Input = I & I2 & I3 & I4 & I5 & I6, I8 extends Input = I & I2 & I3 & I4 & I5 & I6 & I7, E2 extends Env = E, E3 extends Env = E, E4 extends Env = E, E5 extends Env = E, E6 extends Env = E, E7 extends Env = E, E8 extends Env = E, E9 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8]>>(...handlers: [
86
+ <P extends string = ExtractStringKey<S> extends never ? BasePath : ExtractStringKey<S>, R extends HandlerResponse<any> = any, I extends Input = BlankInput, I2 extends Input = I, I3 extends Input = I & I2, I4 extends Input = I & I2 & I3, I5 extends Input = I & I2 & I3 & I4, I6 extends Input = I & I2 & I3 & I4 & I5, I7 extends Input = I & I2 & I3 & I4 & I5 & I6, I8 extends Input = I & I2 & I3 & I4 & I5 & I6 & I7, E2 extends Env = E, E3 extends Env = E, E4 extends Env = E, E5 extends Env = E, E6 extends Env = E, E7 extends Env = E, E8 extends Env = E, E9 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8]>>(...handlers: [
87
87
  H<E2, P, I>,
88
88
  H<E3, P, I2>,
89
89
  H<E4, P, I3>,
@@ -102,7 +102,7 @@ export interface HandlerInterface<E extends Env = Env, M extends string = string
102
102
  H<E7, MergedPath, I6>,
103
103
  H<E8, MergedPath, I7, R>
104
104
  ]): Hono<E, S & ToSchema<M, MergePath<BasePath, P>, I7, MergeTypedResponse<R>>, BasePath>;
105
- <P extends string = ExtractKey<S> extends never ? BasePath : ExtractKey<S>, R extends HandlerResponse<any> = any, I extends Input = BlankInput, I2 extends Input = I, I3 extends Input = I & I2, I4 extends Input = I & I2 & I3, I5 extends Input = I & I2 & I3 & I4, I6 extends Input = I & I2 & I3 & I4 & I5, I7 extends Input = I & I2 & I3 & I4 & I5 & I6, I8 extends Input = I & I2 & I3 & I4 & I5 & I6 & I7, I9 extends Input = I & I2 & I3 & I4 & I5 & I6 & I7 & I8, E2 extends Env = E, E3 extends Env = E, E4 extends Env = E, E5 extends Env = E, E6 extends Env = E, E7 extends Env = E, E8 extends Env = E, E9 extends Env = E, E10 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9]>>(...handlers: [
105
+ <P extends string = ExtractStringKey<S> extends never ? BasePath : ExtractStringKey<S>, R extends HandlerResponse<any> = any, I extends Input = BlankInput, I2 extends Input = I, I3 extends Input = I & I2, I4 extends Input = I & I2 & I3, I5 extends Input = I & I2 & I3 & I4, I6 extends Input = I & I2 & I3 & I4 & I5, I7 extends Input = I & I2 & I3 & I4 & I5 & I6, I8 extends Input = I & I2 & I3 & I4 & I5 & I6 & I7, I9 extends Input = I & I2 & I3 & I4 & I5 & I6 & I7 & I8, E2 extends Env = E, E3 extends Env = E, E4 extends Env = E, E5 extends Env = E, E6 extends Env = E, E7 extends Env = E, E8 extends Env = E, E9 extends Env = E, E10 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9]>>(...handlers: [
106
106
  H<E2, P, I>,
107
107
  H<E3, P, I2>,
108
108
  H<E4, P, I3>,
@@ -123,7 +123,7 @@ export interface HandlerInterface<E extends Env = Env, M extends string = string
123
123
  H<E8, MergedPath, I7>,
124
124
  H<E9, MergedPath, I8, R>
125
125
  ]): Hono<E, S & ToSchema<M, MergePath<BasePath, P>, I8, MergeTypedResponse<R>>, BasePath>;
126
- <P extends string = ExtractKey<S> extends never ? BasePath : ExtractKey<S>, R extends HandlerResponse<any> = any, I extends Input = BlankInput, I2 extends Input = I, I3 extends Input = I & I2, I4 extends Input = I & I2 & I3, I5 extends Input = I & I2 & I3 & I4, I6 extends Input = I & I2 & I3 & I4 & I5, I7 extends Input = I & I2 & I3 & I4 & I5 & I6, I8 extends Input = I & I2 & I3 & I4 & I5 & I6 & I7, I9 extends Input = I & I2 & I3 & I4 & I5 & I6 & I7 & I8, I10 extends Input = I & I2 & I3 & I4 & I5 & I6 & I7 & I8 & I9, E2 extends Env = E, E3 extends Env = E, E4 extends Env = E, E5 extends Env = E, E6 extends Env = E, E7 extends Env = E, E8 extends Env = E, E9 extends Env = E, E10 extends Env = E, E11 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9, E10]>>(...handlers: [
126
+ <P extends string = ExtractStringKey<S> extends never ? BasePath : ExtractStringKey<S>, R extends HandlerResponse<any> = any, I extends Input = BlankInput, I2 extends Input = I, I3 extends Input = I & I2, I4 extends Input = I & I2 & I3, I5 extends Input = I & I2 & I3 & I4, I6 extends Input = I & I2 & I3 & I4 & I5, I7 extends Input = I & I2 & I3 & I4 & I5 & I6, I8 extends Input = I & I2 & I3 & I4 & I5 & I6 & I7, I9 extends Input = I & I2 & I3 & I4 & I5 & I6 & I7 & I8, I10 extends Input = I & I2 & I3 & I4 & I5 & I6 & I7 & I8 & I9, E2 extends Env = E, E3 extends Env = E, E4 extends Env = E, E5 extends Env = E, E6 extends Env = E, E7 extends Env = E, E8 extends Env = E, E9 extends Env = E, E10 extends Env = E, E11 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9, E10]>>(...handlers: [
127
127
  H<E2, P, I>,
128
128
  H<E3, P, I2>,
129
129
  H<E4, P, I3>,
@@ -158,25 +158,25 @@ export interface HandlerInterface<E extends Env = Env, M extends string = string
158
158
  H<E10, MergedPath, I9>,
159
159
  H<E11, MergedPath, I10, R>
160
160
  ]): Hono<E, S & ToSchema<M, MergePath<BasePath, P>, I10, MergeTypedResponse<R>>, BasePath>;
161
- <P extends string = ExtractKey<S> extends never ? BasePath : ExtractKey<S>, I extends Input = BlankInput, R extends HandlerResponse<any> = any>(...handlers: H<E, P, I, R>[]): Hono<E, S & ToSchema<M, P, I, MergeTypedResponse<R>>, BasePath>;
161
+ <P extends string = ExtractStringKey<S> extends never ? BasePath : ExtractStringKey<S>, I extends Input = BlankInput, R extends HandlerResponse<any> = any>(...handlers: H<E, P, I, R>[]): Hono<E, S & ToSchema<M, P, I, MergeTypedResponse<R>>, BasePath>;
162
162
  <P extends string, I extends Input = BlankInput, R extends HandlerResponse<any> = any>(path: P, ...handlers: H<E, MergePath<BasePath, P>, I, R>[]): Hono<E, S & ToSchema<M, MergePath<BasePath, P>, I, MergeTypedResponse<R>>, BasePath>;
163
163
  <P extends string, R extends HandlerResponse<any> = any, I extends Input = BlankInput>(path: P): Hono<E, S & ToSchema<M, MergePath<BasePath, P>, I, MergeTypedResponse<R>>, BasePath>;
164
164
  }
165
165
  export interface MiddlewareHandlerInterface<E extends Env = Env, S extends Schema = BlankSchema, BasePath extends string = '/'> {
166
- <E2 extends Env = E>(...handlers: MiddlewareHandler<E2, MergePath<BasePath, ExtractKey<S>>>[]): Hono<IntersectNonAnyTypes<[E, E2]>, S, BasePath>;
167
- <E2 extends Env = E>(handler: MiddlewareHandler<E2, MergePath<BasePath, ExtractKey<S>>>): Hono<IntersectNonAnyTypes<[E, E2]>, S, BasePath>;
168
- <E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, P extends string = MergePath<BasePath, ExtractKey<S>>>(...handlers: [MiddlewareHandler<E2, P>, MiddlewareHandler<E3, P>]): Hono<IntersectNonAnyTypes<[E, E2, E3]>, S, BasePath>;
166
+ <E2 extends Env = E>(...handlers: MiddlewareHandler<E2, MergePath<BasePath, ExtractStringKey<S>>>[]): Hono<IntersectNonAnyTypes<[E, E2]>, S, BasePath>;
167
+ <E2 extends Env = E>(handler: MiddlewareHandler<E2, MergePath<BasePath, ExtractStringKey<S>>>): Hono<IntersectNonAnyTypes<[E, E2]>, S, BasePath>;
168
+ <E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, P extends string = MergePath<BasePath, ExtractStringKey<S>>>(...handlers: [MiddlewareHandler<E2, P>, MiddlewareHandler<E3, P>]): Hono<IntersectNonAnyTypes<[E, E2, E3]>, S, BasePath>;
169
169
  <P extends string, MergedPath extends MergePath<BasePath, P> = MergePath<BasePath, P>, E2 extends Env = E>(path: P, handler: MiddlewareHandler<E2, MergedPath>): Hono<IntersectNonAnyTypes<[E, E2]>, ChangePathOfSchema<S, MergedPath>, BasePath>;
170
- <E2 extends Env = E, E3 extends Env = E, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, P extends string = MergePath<BasePath, ExtractKey<S>>>(...handlers: [MiddlewareHandler<E2, P>, MiddlewareHandler<E3, P>, MiddlewareHandler<E4, P>]): Hono<IntersectNonAnyTypes<[E, E2, E3, E4]>, S, BasePath>;
170
+ <E2 extends Env = E, E3 extends Env = E, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, P extends string = MergePath<BasePath, ExtractStringKey<S>>>(...handlers: [MiddlewareHandler<E2, P>, MiddlewareHandler<E3, P>, MiddlewareHandler<E4, P>]): Hono<IntersectNonAnyTypes<[E, E2, E3, E4]>, S, BasePath>;
171
171
  <P extends string, MergedPath extends MergePath<BasePath, P> = MergePath<BasePath, P>, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>>(path: P, ...handlers: [MiddlewareHandler<E2, P>, MiddlewareHandler<E3, P>]): Hono<IntersectNonAnyTypes<[E, E2, E3]>, ChangePathOfSchema<S, MergedPath>, BasePath>;
172
- <E2 extends Env = E, E3 extends Env = E, E4 extends Env = E, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>, P extends string = MergePath<BasePath, ExtractKey<S>>>(...handlers: [
172
+ <E2 extends Env = E, E3 extends Env = E, E4 extends Env = E, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>, P extends string = MergePath<BasePath, ExtractStringKey<S>>>(...handlers: [
173
173
  MiddlewareHandler<E2, P>,
174
174
  MiddlewareHandler<E3, P>,
175
175
  MiddlewareHandler<E4, P>,
176
176
  MiddlewareHandler<E5, P>
177
177
  ]): Hono<IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, S, BasePath>;
178
178
  <P extends string, MergedPath extends MergePath<BasePath, P> = MergePath<BasePath, P>, E2 extends Env = E, E3 extends Env = E, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>>(path: P, ...handlers: [MiddlewareHandler<E2, P>, MiddlewareHandler<E3, P>, MiddlewareHandler<E4, P>]): Hono<IntersectNonAnyTypes<[E, E2, E3, E4]>, ChangePathOfSchema<S, MergedPath>, BasePath>;
179
- <E2 extends Env = E, E3 extends Env = E, E4 extends Env = E, E5 extends Env = E, E6 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, P extends string = MergePath<BasePath, ExtractKey<S>>>(...handlers: [
179
+ <E2 extends Env = E, E3 extends Env = E, E4 extends Env = E, E5 extends Env = E, E6 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, P extends string = MergePath<BasePath, ExtractStringKey<S>>>(...handlers: [
180
180
  MiddlewareHandler<E2, P>,
181
181
  MiddlewareHandler<E3, P>,
182
182
  MiddlewareHandler<E4, P>,
@@ -189,7 +189,7 @@ export interface MiddlewareHandlerInterface<E extends Env = Env, S extends Schem
189
189
  MiddlewareHandler<E4, P>,
190
190
  MiddlewareHandler<E5, P>
191
191
  ]): Hono<IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, ChangePathOfSchema<S, MergedPath>, BasePath>;
192
- <E2 extends Env = E, E3 extends Env = E, E4 extends Env = E, E5 extends Env = E, E6 extends Env = E, E7 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>, P extends string = MergePath<BasePath, ExtractKey<S>>>(...handlers: [
192
+ <E2 extends Env = E, E3 extends Env = E, E4 extends Env = E, E5 extends Env = E, E6 extends Env = E, E7 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>, P extends string = MergePath<BasePath, ExtractStringKey<S>>>(...handlers: [
193
193
  MiddlewareHandler<E2, P>,
194
194
  MiddlewareHandler<E3, P>,
195
195
  MiddlewareHandler<E4, P>,
@@ -204,7 +204,7 @@ export interface MiddlewareHandlerInterface<E extends Env = Env, S extends Schem
204
204
  MiddlewareHandler<E5, P>,
205
205
  MiddlewareHandler<E6, P>
206
206
  ]): Hono<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>, ChangePathOfSchema<S, MergedPath>, BasePath>;
207
- <E2 extends Env = E, E3 extends Env = E, E4 extends Env = E, E5 extends Env = E, E6 extends Env = E, E7 extends Env = E, E8 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7]>, P extends string = MergePath<BasePath, ExtractKey<S>>>(...handlers: [
207
+ <E2 extends Env = E, E3 extends Env = E, E4 extends Env = E, E5 extends Env = E, E6 extends Env = E, E7 extends Env = E, E8 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7]>, P extends string = MergePath<BasePath, ExtractStringKey<S>>>(...handlers: [
208
208
  MiddlewareHandler<E2, P>,
209
209
  MiddlewareHandler<E3, P>,
210
210
  MiddlewareHandler<E4, P>,
@@ -221,7 +221,7 @@ export interface MiddlewareHandlerInterface<E extends Env = Env, S extends Schem
221
221
  MiddlewareHandler<E6, P>,
222
222
  MiddlewareHandler<E7, P>
223
223
  ]): Hono<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7]>, ChangePathOfSchema<S, MergedPath>, BasePath>;
224
- <E2 extends Env = E, E3 extends Env = E, E4 extends Env = E, E5 extends Env = E, E6 extends Env = E, E7 extends Env = E, E8 extends Env = E, E9 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8]>, P extends string = MergePath<BasePath, ExtractKey<S>>>(...handlers: [
224
+ <E2 extends Env = E, E3 extends Env = E, E4 extends Env = E, E5 extends Env = E, E6 extends Env = E, E7 extends Env = E, E8 extends Env = E, E9 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8]>, P extends string = MergePath<BasePath, ExtractStringKey<S>>>(...handlers: [
225
225
  MiddlewareHandler<E2, P>,
226
226
  MiddlewareHandler<E3, P>,
227
227
  MiddlewareHandler<E4, P>,
@@ -240,7 +240,7 @@ export interface MiddlewareHandlerInterface<E extends Env = Env, S extends Schem
240
240
  MiddlewareHandler<E7, P>,
241
241
  MiddlewareHandler<E8, P>
242
242
  ]): Hono<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8]>, ChangePathOfSchema<S, MergedPath>, BasePath>;
243
- <E2 extends Env = E, E3 extends Env = E, E4 extends Env = E, E5 extends Env = E, E6 extends Env = E, E7 extends Env = E, E8 extends Env = E, E9 extends Env = E, E10 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9]>, P extends string = MergePath<BasePath, ExtractKey<S>>>(...handlers: [
243
+ <E2 extends Env = E, E3 extends Env = E, E4 extends Env = E, E5 extends Env = E, E6 extends Env = E, E7 extends Env = E, E8 extends Env = E, E9 extends Env = E, E10 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9]>, P extends string = MergePath<BasePath, ExtractStringKey<S>>>(...handlers: [
244
244
  MiddlewareHandler<E2, P>,
245
245
  MiddlewareHandler<E3, P>,
246
246
  MiddlewareHandler<E4, P>,
@@ -261,7 +261,7 @@ export interface MiddlewareHandlerInterface<E extends Env = Env, S extends Schem
261
261
  MiddlewareHandler<E8, P>,
262
262
  MiddlewareHandler<E9, P>
263
263
  ]): Hono<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9]>, ChangePathOfSchema<S, MergedPath>, BasePath>;
264
- <E2 extends Env = E, E3 extends Env = E, E4 extends Env = E, E5 extends Env = E, E6 extends Env = E, E7 extends Env = E, E8 extends Env = E, E9 extends Env = E, E10 extends Env = E, E11 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9, E10]>, P extends string = MergePath<BasePath, ExtractKey<S>>>(...handlers: [
264
+ <E2 extends Env = E, E3 extends Env = E, E4 extends Env = E, E5 extends Env = E, E6 extends Env = E, E7 extends Env = E, E8 extends Env = E, E9 extends Env = E, E10 extends Env = E, E11 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9, E10]>, P extends string = MergePath<BasePath, ExtractStringKey<S>>>(...handlers: [
265
265
  MiddlewareHandler<E2, P>,
266
266
  MiddlewareHandler<E3, P>,
267
267
  MiddlewareHandler<E4, P>,
@@ -423,7 +423,7 @@ export interface OnHandlerInterface<E extends Env = Env, S extends Schema = Blan
423
423
  <P extends string, R extends HandlerResponse<any> = any, I extends Input = BlankInput>(methods: string[], path: P, ...handlers: H<E, MergePath<BasePath, P>, I, R>[]): Hono<E, S & ToSchema<string, MergePath<BasePath, P>, I, MergeTypedResponse<R>>, BasePath>;
424
424
  <I extends Input = BlankInput, R extends HandlerResponse<any> = any>(methods: string | string[], paths: string[], ...handlers: H<E, any, I, R>[]): Hono<E, S & ToSchema<string, string, I, MergeTypedResponse<R>>, BasePath>;
425
425
  }
426
- type ExtractKey<S> = S extends Record<infer Key, unknown> ? Key extends string ? Key : never : string;
426
+ type ExtractStringKey<S> = keyof S & string;
427
427
  export type ToSchema<M extends string, P extends string, I extends Input | Input['in'], RorO> = Simplify<{
428
428
  [K in P]: {
429
429
  [K2 in M as AddDollar<K2>]: Simplify<{
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @module
3
+ * Constants for compression.
4
+ */
5
+ /**
6
+ * Match for compressible content type.
7
+ */
8
+ export declare const COMPRESSIBLE_CONTENT_TYPE_REGEX: RegExp;
@@ -27,7 +27,9 @@ export type JSONParsed<T> = T extends {
27
27
  toJSON(): infer J;
28
28
  } ? (() => J) extends () => JSONPrimitive ? J : (() => J) extends () => {
29
29
  toJSON(): unknown;
30
- } ? {} : JSONParsed<J> : T extends JSONPrimitive ? T : T extends InvalidJSONValue ? never : T extends [] ? [] : T extends readonly [infer R, ...infer U] ? [JSONParsed<InvalidToNull<R>>, ...JSONParsed<U>] : T extends Array<infer U> ? Array<JSONParsed<InvalidToNull<U>>> : T extends ReadonlyArray<infer U> ? ReadonlyArray<JSONParsed<InvalidToNull<U>>> : T extends Set<unknown> | Map<unknown, unknown> ? {} : T extends object ? {
30
+ } ? {} : JSONParsed<J> : T extends JSONPrimitive ? T : T extends InvalidJSONValue ? never : T extends ReadonlyArray<unknown> ? {
31
+ [K in keyof T]: JSONParsed<InvalidToNull<T[K]>>;
32
+ } : T extends Set<unknown> | Map<unknown, unknown> ? {} : T extends object ? {
31
33
  [K in keyof OmitSymbolKeys<T> as IsInvalid<T[K]> extends true ? never : K]: boolean extends IsInvalid<T[K]> ? JSONParsed<T[K]> | undefined : JSONParsed<T[K]>;
32
34
  } : never;
33
35
  /**
@@ -0,0 +1,5 @@
1
+ // src/utils/compress.ts
2
+ var COMPRESSIBLE_CONTENT_TYPE_REGEX = /^\s*(?:text\/[^;\s]+|application\/(?:javascript|json|xml|xml-dtd|ecmascript|dart|postscript|rtf|tar|toml|vnd\.dart|vnd\.ms-fontobject|vnd\.ms-opentype|wasm|x-httpd-php|x-javascript|x-ns-proxy-autoconfig|x-sh|x-tar|x-virtualbox-hdd|x-virtualbox-ova|x-virtualbox-ovf|x-virtualbox-vbox|x-virtualbox-vdi|x-virtualbox-vhd|x-virtualbox-vmdk|x-www-form-urlencoded)|font\/(?:otf|ttf)|image\/(?:bmp|vnd\.adobe\.photoshop|vnd\.microsoft\.icon|vnd\.ms-dds|x-icon|x-ms-bmp)|message\/rfc822|model\/gltf-binary|x-shader\/x-fragment|x-shader\/x-vertex|[^;\s]+?\+(?:json|text|xml|yaml))(?:[;\s]|$)/i;
3
+ export {
4
+ COMPRESSIBLE_CONTENT_TYPE_REGEX
5
+ };
@@ -18,7 +18,7 @@ var verifySignature = async (base64Signature, value, secret) => {
18
18
  signature[i] = signatureBinStr.charCodeAt(i);
19
19
  }
20
20
  return await crypto.subtle.verify(algorithm, secret, signature, new TextEncoder().encode(value));
21
- } catch (e) {
21
+ } catch {
22
22
  return false;
23
23
  }
24
24
  };
@@ -24,6 +24,9 @@ var getFilePathWithoutDefaultDocument = (options) => {
24
24
  root = root.replace(/\/$/, "");
25
25
  let path = root ? root + "/" + filename : filename;
26
26
  path = path.replace(/^\.?\//, "");
27
+ if (root[0] !== "/" && path[0] === "/") {
28
+ return;
29
+ }
27
30
  return path;
28
31
  };
29
32
  export {
@@ -69,7 +69,7 @@ var decode = (token) => {
69
69
  header,
70
70
  payload
71
71
  };
72
- } catch (e) {
72
+ } catch {
73
73
  throw new JwtTokenInvalid(token);
74
74
  }
75
75
  };
@@ -31,7 +31,7 @@ var StreamingApi = class {
31
31
  input = this.encoder.encode(input);
32
32
  }
33
33
  await this.writer.write(input);
34
- } catch (e) {
34
+ } catch {
35
35
  }
36
36
  return this;
37
37
  }
@@ -45,7 +45,7 @@ var StreamingApi = class {
45
45
  async close() {
46
46
  try {
47
47
  await this.writer.close();
48
- } catch (e) {
48
+ } catch {
49
49
  }
50
50
  this.closed = true;
51
51
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hono",
3
- "version": "4.6.1",
3
+ "version": "4.6.3",
4
4
  "description": "Web framework built on Web Standards",
5
5
  "main": "dist/cjs/index.js",
6
6
  "type": "module",
@@ -12,18 +12,18 @@
12
12
  "scripts": {
13
13
  "test": "tsc --noEmit && vitest --run && vitest -c .vitest.config/jsx-runtime-default.ts --run && vitest -c .vitest.config/jsx-runtime-dom.ts --run",
14
14
  "test:watch": "vitest --watch",
15
- "test:deno": "deno test --allow-read --allow-env --allow-write --allow-net -c runtime_tests/deno/deno.json runtime_tests/deno && deno test --no-lock -c runtime_tests/deno-jsx/deno.precompile.json runtime_tests/deno-jsx && deno test --no-lock -c runtime_tests/deno-jsx/deno.react-jsx.json runtime_tests/deno-jsx",
16
- "test:bun": "bun test --jsx-import-source ../../src/jsx runtime_tests/bun/index.test.tsx",
17
- "test:fastly": "vitest --run --config ./runtime_tests/fastly/vitest.config.ts",
18
- "test:node": "vitest --run --config ./runtime_tests/node/vitest.config.ts",
19
- "test:workerd": "vitest --run --config ./runtime_tests/workerd/vitest.config.ts",
20
- "test:lambda": "vitest --run --config ./runtime_tests/lambda/vitest.config.ts",
21
- "test:lambda-edge": "vitest --run --config ./runtime_tests/lambda-edge/vitest.config.ts",
15
+ "test:deno": "deno test --allow-read --allow-env --allow-write --allow-net -c runtime-tests/deno/deno.json runtime-tests/deno && deno test --no-lock -c runtime-tests/deno-jsx/deno.precompile.json runtime-tests/deno-jsx && deno test --no-lock -c runtime-tests/deno-jsx/deno.react-jsx.json runtime-tests/deno-jsx",
16
+ "test:bun": "bun test --jsx-import-source ../../src/jsx runtime-tests/bun/index.test.tsx",
17
+ "test:fastly": "vitest --run --config ./runtime-tests/fastly/vitest.config.ts",
18
+ "test:node": "vitest --run --config ./runtime-tests/node/vitest.config.ts",
19
+ "test:workerd": "vitest --run --config ./runtime-tests/workerd/vitest.config.ts",
20
+ "test:lambda": "vitest --run --config ./runtime-tests/lambda/vitest.config.ts",
21
+ "test:lambda-edge": "vitest --run --config ./runtime-tests/lambda-edge/vitest.config.ts",
22
22
  "test:all": "bun run test && bun test:deno && bun test:bun && bun test:fastly && bun test:node && bun test:workerd && bun test:lambda && bun test:lambda-edge",
23
- "lint": "eslint --ext js,ts,tsx src runtime_tests",
24
- "lint:fix": "eslint --ext js,ts,tsx src runtime_tests --fix",
25
- "format": "prettier --check --cache \"src/**/*.{js,ts,tsx}\" \"runtime_tests/**/*.{js,ts,tsx}\"",
26
- "format:fix": "prettier --write --cache --cache-strategy metadata \"src/**/*.{js,ts,tsx}\" \"runtime_tests/**/*.{js,ts,tsx}\"",
23
+ "lint": "eslint src runtime-tests",
24
+ "lint:fix": "eslint src runtime-tests --fix",
25
+ "format": "prettier --check --cache \"src/**/*.{js,ts,tsx}\" \"runtime-tests/**/*.{js,ts,tsx}\"",
26
+ "format:fix": "prettier --write --cache --cache-strategy metadata \"src/**/*.{js,ts,tsx}\" \"runtime-tests/**/*.{js,ts,tsx}\"",
27
27
  "copy:package.cjs.json": "cp ./package.cjs.json ./dist/cjs/package.json && cp ./package.cjs.json ./dist/types/package.json ",
28
28
  "build": "bun run --shell bun remove-dist && bun ./build.ts && bun run copy:package.cjs.json",
29
29
  "postbuild": "publint",
@@ -618,7 +618,7 @@
618
618
  "nodejs"
619
619
  ],
620
620
  "devDependencies": {
621
- "@hono/eslint-config": "^0.0.6",
621
+ "@hono/eslint-config": "^1.0.1",
622
622
  "@hono/node-server": "^1.8.2",
623
623
  "@types/crypto-js": "^4.1.1",
624
624
  "@types/glob": "^8.0.0",
@@ -629,7 +629,7 @@
629
629
  "arg": "^5.0.2",
630
630
  "crypto-js": "^4.1.1",
631
631
  "esbuild": "^0.15.12",
632
- "eslint": "^8.55.0",
632
+ "eslint": "^9.10.0",
633
633
  "glob": "7.2.3",
634
634
  "jsdom": "^22.1.0",
635
635
  "msw": "^2.3.0",
@@ -645,6 +645,6 @@
645
645
  "zod": "^3.20.2"
646
646
  },
647
647
  "engines": {
648
- "node": ">=16.0.0"
648
+ "node": ">=16.9.0"
649
649
  }
650
650
  }
File without changes