hono 4.6.20 → 4.7.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 (101) hide show
  1. package/dist/adapter/aws-lambda/handler.js +0 -2
  2. package/dist/cjs/adapter/aws-lambda/handler.js +0 -8
  3. package/dist/cjs/helper/accepts/accepts.js +4 -26
  4. package/dist/cjs/helper/factory/index.js +6 -2
  5. package/dist/cjs/helper/proxy/index.js +75 -0
  6. package/dist/cjs/middleware/combine/index.js +10 -3
  7. package/dist/cjs/middleware/etag/digest.js +3 -8
  8. package/dist/cjs/middleware/etag/index.js +18 -2
  9. package/dist/cjs/middleware/jwk/index.js +28 -0
  10. package/dist/cjs/middleware/jwk/jwk.js +124 -0
  11. package/dist/cjs/middleware/language/index.js +36 -0
  12. package/dist/cjs/middleware/language/language.js +210 -0
  13. package/dist/cjs/middleware/logger/index.js +2 -3
  14. package/dist/cjs/request.js +1 -1
  15. package/dist/cjs/router/linear-router/router.js +3 -1
  16. package/dist/cjs/router/trie-router/node.js +24 -11
  17. package/dist/cjs/utils/accept.js +86 -0
  18. package/dist/cjs/utils/jwt/index.js +1 -1
  19. package/dist/cjs/utils/jwt/jwt.js +56 -3
  20. package/dist/cjs/utils/jwt/types.js +8 -0
  21. package/dist/cjs/utils/url.js +10 -25
  22. package/dist/helper/accepts/accepts.js +2 -23
  23. package/dist/helper/factory/index.js +6 -2
  24. package/dist/helper/proxy/index.js +52 -0
  25. package/dist/middleware/combine/index.js +10 -3
  26. package/dist/middleware/etag/digest.js +3 -8
  27. package/dist/middleware/etag/index.js +18 -2
  28. package/dist/middleware/jwk/index.js +5 -0
  29. package/dist/middleware/jwk/jwk.js +101 -0
  30. package/dist/middleware/language/index.js +15 -0
  31. package/dist/middleware/language/language.js +178 -0
  32. package/dist/middleware/logger/index.js +2 -3
  33. package/dist/request.js +1 -1
  34. package/dist/router/linear-router/router.js +3 -1
  35. package/dist/router/trie-router/node.js +24 -11
  36. package/dist/types/adapter/cloudflare-pages/handler.d.ts +1 -1
  37. package/dist/types/adapter/cloudflare-workers/websocket.d.ts +1 -1
  38. package/dist/types/adapter/lambda-edge/handler.d.ts +2 -2
  39. package/dist/types/client/types.d.ts +7 -8
  40. package/dist/types/compose.d.ts +11 -1
  41. package/dist/types/context.d.ts +31 -21
  42. package/dist/types/helper/accepts/accepts.d.ts +0 -1
  43. package/dist/types/helper/adapter/index.d.ts +2 -2
  44. package/dist/types/helper/conninfo/types.d.ts +2 -2
  45. package/dist/types/helper/css/common.d.ts +6 -1
  46. package/dist/types/helper/factory/index.d.ts +289 -12
  47. package/dist/types/helper/proxy/index.d.ts +54 -0
  48. package/dist/types/helper/ssg/ssg.d.ts +1 -1
  49. package/dist/types/helper/websocket/index.d.ts +1 -2
  50. package/dist/types/hono-base.d.ts +18 -15
  51. package/dist/types/hono.d.ts +1 -1
  52. package/dist/types/jsx/base.d.ts +4 -1
  53. package/dist/types/jsx/dom/hooks/index.d.ts +9 -3
  54. package/dist/types/jsx/dom/index.d.ts +28 -7
  55. package/dist/types/jsx/dom/intrinsic-element/components.d.ts +6 -6
  56. package/dist/types/jsx/dom/render.d.ts +28 -4
  57. package/dist/types/jsx/dom/server.d.ts +28 -7
  58. package/dist/types/jsx/hooks/index.d.ts +20 -5
  59. package/dist/types/jsx/index.d.ts +28 -7
  60. package/dist/types/jsx/intrinsic-element/components.d.ts +4 -4
  61. package/dist/types/jsx/intrinsic-elements.d.ts +46 -46
  62. package/dist/types/middleware/compress/index.d.ts +4 -1
  63. package/dist/types/middleware/etag/digest.d.ts +1 -1
  64. package/dist/types/middleware/etag/index.d.ts +4 -0
  65. package/dist/types/middleware/jwk/index.d.ts +1 -0
  66. package/dist/types/middleware/jwk/jwk.d.ts +40 -0
  67. package/dist/types/middleware/language/index.d.ts +7 -0
  68. package/dist/types/middleware/language/language.d.ts +102 -0
  69. package/dist/types/middleware/secure-headers/permissions-policy.d.ts +3 -3
  70. package/dist/types/middleware/secure-headers/secure-headers.d.ts +1 -1
  71. package/dist/types/preset/quick.d.ts +1 -1
  72. package/dist/types/preset/tiny.d.ts +1 -1
  73. package/dist/types/request.d.ts +5 -3
  74. package/dist/types/router/linear-router/router.d.ts +0 -1
  75. package/dist/types/router/pattern-router/router.d.ts +0 -1
  76. package/dist/types/router/reg-exp-router/node.d.ts +4 -2
  77. package/dist/types/router/reg-exp-router/router.d.ts +0 -1
  78. package/dist/types/router/reg-exp-router/trie.d.ts +5 -2
  79. package/dist/types/router/smart-router/router.d.ts +0 -1
  80. package/dist/types/router/trie-router/node.d.ts +6 -2
  81. package/dist/types/router/trie-router/router.d.ts +0 -1
  82. package/dist/types/router.d.ts +20 -2
  83. package/dist/types/types.d.ts +2002 -111
  84. package/dist/types/utils/accept.d.ts +11 -0
  85. package/dist/types/utils/cookie.d.ts +4 -4
  86. package/dist/types/utils/headers.d.ts +3 -3
  87. package/dist/types/utils/html.d.ts +6 -2
  88. package/dist/types/utils/jwt/index.d.ts +4 -0
  89. package/dist/types/utils/jwt/jws.d.ts +4 -1
  90. package/dist/types/utils/jwt/jwt.d.ts +8 -2
  91. package/dist/types/utils/jwt/types.d.ts +4 -0
  92. package/dist/types/utils/mime.d.ts +2 -2
  93. package/dist/types/utils/stream.d.ts +0 -4
  94. package/dist/types/utils/url.d.ts +16 -2
  95. package/dist/types/validator/validator.d.ts +18 -6
  96. package/dist/utils/accept.js +63 -0
  97. package/dist/utils/jwt/index.js +2 -2
  98. package/dist/utils/jwt/jwt.js +54 -2
  99. package/dist/utils/jwt/types.js +7 -0
  100. package/dist/utils/url.js +10 -25
  101. package/package.json +24 -3
@@ -15,7 +15,7 @@ export type Env = {
15
15
  Variables?: Variables;
16
16
  };
17
17
  export type Next = () => Promise<void>;
18
- export type ExtractInput<I extends Input | Input['in']> = I extends Input ? unknown extends I['in'] ? {} : I['in'] : I;
18
+ export type ExtractInput<I extends Input | Input["in"]> = I extends Input ? unknown extends I["in"] ? {} : I["in"] : I;
19
19
  export type Input = {
20
20
  in?: {};
21
21
  out?: {};
@@ -37,37 +37,233 @@ export interface HTTPResponseError extends Error {
37
37
  getResponse: () => Response;
38
38
  }
39
39
  export type ErrorHandler<E extends Env = any> = (err: Error | HTTPResponseError, c: Context<E>) => Response | Promise<Response>;
40
- export interface HandlerInterface<E extends Env = Env, M extends string = string, S extends Schema = BlankSchema, BasePath extends string = '/'> {
41
- <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>): HonoBase<IntersectNonAnyTypes<[E, E2]>, S & ToSchema<M, P, I, MergeTypedResponse<R>>, BasePath>;
42
- <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>]): HonoBase<IntersectNonAnyTypes<[E, E2, E3]>, S & ToSchema<M, P, I2, MergeTypedResponse<R>>, BasePath>;
40
+ export interface HandlerInterface<E extends Env = Env, M extends string = string, S extends Schema = BlankSchema, BasePath extends string = "/"> {
41
+ <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>): HonoBase<IntersectNonAnyTypes<[
42
+ E,
43
+ E2
44
+ ]>, S & ToSchema<M, P, I, MergeTypedResponse<R>>, BasePath>;
45
+ <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<[
46
+ E,
47
+ E2
48
+ ]>>(...handlers: [
49
+ H<E2, P, I>,
50
+ H<E3, P, I2, R>
51
+ ]): HonoBase<IntersectNonAnyTypes<[
52
+ E,
53
+ E2,
54
+ E3
55
+ ]>, S & ToSchema<M, P, I2, MergeTypedResponse<R>>, BasePath>;
43
56
  <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>): HonoBase<E, S & ToSchema<M, MergePath<BasePath, P>, I, MergeTypedResponse<R>>, BasePath>;
44
- <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 = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>>(...handlers: [H<E2, P, I>, H<E3, P, I2>, H<E4, P, I3, R>]): HonoBase<IntersectNonAnyTypes<[E, E2, E3, E4]>, S & ToSchema<M, P, I3, MergeTypedResponse<R>>, BasePath>;
45
- <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>]): HonoBase<E, S & ToSchema<M, MergePath<BasePath, P>, I2, MergeTypedResponse<R>>, BasePath>;
46
- <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 = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, 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>]): HonoBase<IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, S & ToSchema<M, P, I4, MergeTypedResponse<R>>, BasePath>;
47
- <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 = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>>(path: P, ...handlers: [H<E2, MergedPath, I>, H<E3, MergedPath, I2>, H<E4, MergedPath, I3, R>]): HonoBase<E, S & ToSchema<M, MergePath<BasePath, P>, I3, MergeTypedResponse<R>>, BasePath>;
48
- <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 = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>, 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>]): HonoBase<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>, S & ToSchema<M, P, I5, MergeTypedResponse<R>>, BasePath>;
49
- <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 = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>>(path: P, ...handlers: [
57
+ <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 = IntersectNonAnyTypes<[
58
+ E,
59
+ E2
60
+ ]>, E4 extends Env = IntersectNonAnyTypes<[
61
+ E,
62
+ E2,
63
+ E3
64
+ ]>>(...handlers: [
65
+ H<E2, P, I>,
66
+ H<E3, P, I2>,
67
+ H<E4, P, I3, R>
68
+ ]): HonoBase<IntersectNonAnyTypes<[
69
+ E,
70
+ E2,
71
+ E3,
72
+ E4
73
+ ]>, S & ToSchema<M, P, I3, MergeTypedResponse<R>>, BasePath>;
74
+ <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<[
75
+ E,
76
+ E2
77
+ ]>>(path: P, ...handlers: [
78
+ H<E2, MergedPath, I>,
79
+ H<E3, MergedPath, I2, R>
80
+ ]): HonoBase<E, S & ToSchema<M, MergePath<BasePath, P>, I2, MergeTypedResponse<R>>, BasePath>;
81
+ <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 = IntersectNonAnyTypes<[
82
+ E,
83
+ E2
84
+ ]>, E4 extends Env = IntersectNonAnyTypes<[
85
+ E,
86
+ E2,
87
+ E3
88
+ ]>, E5 extends Env = IntersectNonAnyTypes<[
89
+ E,
90
+ E2,
91
+ E3,
92
+ E4
93
+ ]>>(...handlers: [
94
+ H<E2, P, I>,
95
+ H<E3, P, I2>,
96
+ H<E4, P, I3>,
97
+ H<E5, P, I4, R>
98
+ ]): HonoBase<IntersectNonAnyTypes<[
99
+ E,
100
+ E2,
101
+ E3,
102
+ E4,
103
+ E5
104
+ ]>, S & ToSchema<M, P, I4, MergeTypedResponse<R>>, BasePath>;
105
+ <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 = IntersectNonAnyTypes<[
106
+ E,
107
+ E2
108
+ ]>, E4 extends Env = IntersectNonAnyTypes<[
109
+ E,
110
+ E2,
111
+ E3
112
+ ]>>(path: P, ...handlers: [
113
+ H<E2, MergedPath, I>,
114
+ H<E3, MergedPath, I2>,
115
+ H<E4, MergedPath, I3, R>
116
+ ]): HonoBase<E, S & ToSchema<M, MergePath<BasePath, P>, I3, MergeTypedResponse<R>>, BasePath>;
117
+ <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 = IntersectNonAnyTypes<[
118
+ E,
119
+ E2
120
+ ]>, E4 extends Env = IntersectNonAnyTypes<[
121
+ E,
122
+ E2,
123
+ E3
124
+ ]>, E5 extends Env = IntersectNonAnyTypes<[
125
+ E,
126
+ E2,
127
+ E3,
128
+ E4
129
+ ]>, E6 extends Env = IntersectNonAnyTypes<[
130
+ E,
131
+ E2,
132
+ E3,
133
+ E4,
134
+ E5
135
+ ]>>(...handlers: [
136
+ H<E2, P, I>,
137
+ H<E3, P, I2>,
138
+ H<E4, P, I3>,
139
+ H<E5, P, I4>,
140
+ H<E6, P, I5, R>
141
+ ]): HonoBase<IntersectNonAnyTypes<[
142
+ E,
143
+ E2,
144
+ E3,
145
+ E4,
146
+ E5,
147
+ E6
148
+ ]>, S & ToSchema<M, P, I5, MergeTypedResponse<R>>, BasePath>;
149
+ <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 = IntersectNonAnyTypes<[
150
+ E,
151
+ E2
152
+ ]>, E4 extends Env = IntersectNonAnyTypes<[
153
+ E,
154
+ E2,
155
+ E3
156
+ ]>, E5 extends Env = IntersectNonAnyTypes<[
157
+ E,
158
+ E2,
159
+ E3,
160
+ E4
161
+ ]>>(path: P, ...handlers: [
50
162
  H<E2, MergedPath, I>,
51
163
  H<E3, MergedPath, I2>,
52
164
  H<E4, MergedPath, I3>,
53
165
  H<E5, MergedPath, I4, R>
54
166
  ]): HonoBase<E, S & ToSchema<M, MergePath<BasePath, P>, I4, MergeTypedResponse<R>>, BasePath>;
55
- <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 = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>, E6 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, E7 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>>(...handlers: [
167
+ <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 = IntersectNonAnyTypes<[
168
+ E,
169
+ E2
170
+ ]>, E4 extends Env = IntersectNonAnyTypes<[
171
+ E,
172
+ E2,
173
+ E3
174
+ ]>, E5 extends Env = IntersectNonAnyTypes<[
175
+ E,
176
+ E2,
177
+ E3,
178
+ E4
179
+ ]>, E6 extends Env = IntersectNonAnyTypes<[
180
+ E,
181
+ E2,
182
+ E3,
183
+ E4,
184
+ E5
185
+ ]>, E7 extends Env = IntersectNonAnyTypes<[
186
+ E,
187
+ E2,
188
+ E3,
189
+ E4,
190
+ E5,
191
+ E6
192
+ ]>>(...handlers: [
56
193
  H<E2, P, I>,
57
194
  H<E3, P, I2>,
58
195
  H<E4, P, I3>,
59
196
  H<E5, P, I4>,
60
197
  H<E6, P, I5>,
61
198
  H<E7, P, I6, R>
62
- ]): HonoBase<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7]>, S & ToSchema<M, P, I6, MergeTypedResponse<R>>, BasePath>;
63
- <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, I5 extends Input = I & I2 & I3 & I4, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>, E6 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5]>>(path: P, ...handlers: [
199
+ ]): HonoBase<IntersectNonAnyTypes<[
200
+ E,
201
+ E2,
202
+ E3,
203
+ E4,
204
+ E5,
205
+ E6,
206
+ E7
207
+ ]>, S & ToSchema<M, P, I6, MergeTypedResponse<R>>, BasePath>;
208
+ <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, I5 extends Input = I & I2 & I3 & I4, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[
209
+ E,
210
+ E2
211
+ ]>, E4 extends Env = IntersectNonAnyTypes<[
212
+ E,
213
+ E2,
214
+ E3
215
+ ]>, E5 extends Env = IntersectNonAnyTypes<[
216
+ E,
217
+ E2,
218
+ E3,
219
+ E4
220
+ ]>, E6 extends Env = IntersectNonAnyTypes<[
221
+ E,
222
+ E2,
223
+ E3,
224
+ E4,
225
+ E5
226
+ ]>>(path: P, ...handlers: [
64
227
  H<E2, MergedPath, I>,
65
228
  H<E3, MergedPath, I2>,
66
229
  H<E4, MergedPath, I3>,
67
230
  H<E5, MergedPath, I4>,
68
231
  H<E6, MergedPath, I5, R>
69
232
  ]): HonoBase<E, S & ToSchema<M, MergePath<BasePath, P>, I5, MergeTypedResponse<R>>, BasePath>;
70
- <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 = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>, E6 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, E7 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>, E8 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7]>>(...handlers: [
233
+ <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 = IntersectNonAnyTypes<[
234
+ E,
235
+ E2
236
+ ]>, E4 extends Env = IntersectNonAnyTypes<[
237
+ E,
238
+ E2,
239
+ E3
240
+ ]>, E5 extends Env = IntersectNonAnyTypes<[
241
+ E,
242
+ E2,
243
+ E3,
244
+ E4
245
+ ]>, E6 extends Env = IntersectNonAnyTypes<[
246
+ E,
247
+ E2,
248
+ E3,
249
+ E4,
250
+ E5
251
+ ]>, E7 extends Env = IntersectNonAnyTypes<[
252
+ E,
253
+ E2,
254
+ E3,
255
+ E4,
256
+ E5,
257
+ E6
258
+ ]>, E8 extends Env = IntersectNonAnyTypes<[
259
+ E,
260
+ E2,
261
+ E3,
262
+ E4,
263
+ E5,
264
+ E6,
265
+ E7
266
+ ]>>(...handlers: [
71
267
  H<E2, P, I>,
72
268
  H<E3, P, I2>,
73
269
  H<E4, P, I3>,
@@ -75,8 +271,42 @@ export interface HandlerInterface<E extends Env = Env, M extends string = string
75
271
  H<E6, P, I5>,
76
272
  H<E7, P, I6>,
77
273
  H<E8, P, I7, R>
78
- ]): HonoBase<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8]>, S & ToSchema<M, P, I7, MergeTypedResponse<R>>, BasePath>;
79
- <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, I5 extends Input = I & I2 & I3 & I4, I6 extends Input = I & I2 & I3 & I4 & I5, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>, E6 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, E7 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>>(path: P, ...handlers: [
274
+ ]): HonoBase<IntersectNonAnyTypes<[
275
+ E,
276
+ E2,
277
+ E3,
278
+ E4,
279
+ E5,
280
+ E6,
281
+ E7,
282
+ E8
283
+ ]>, S & ToSchema<M, P, I7, MergeTypedResponse<R>>, BasePath>;
284
+ <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, I5 extends Input = I & I2 & I3 & I4, I6 extends Input = I & I2 & I3 & I4 & I5, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[
285
+ E,
286
+ E2
287
+ ]>, E4 extends Env = IntersectNonAnyTypes<[
288
+ E,
289
+ E2,
290
+ E3
291
+ ]>, E5 extends Env = IntersectNonAnyTypes<[
292
+ E,
293
+ E2,
294
+ E3,
295
+ E4
296
+ ]>, E6 extends Env = IntersectNonAnyTypes<[
297
+ E,
298
+ E2,
299
+ E3,
300
+ E4,
301
+ E5
302
+ ]>, E7 extends Env = IntersectNonAnyTypes<[
303
+ E,
304
+ E2,
305
+ E3,
306
+ E4,
307
+ E5,
308
+ E6
309
+ ]>>(path: P, ...handlers: [
80
310
  H<E2, MergedPath, I>,
81
311
  H<E3, MergedPath, I2>,
82
312
  H<E4, MergedPath, I3>,
@@ -84,7 +314,49 @@ export interface HandlerInterface<E extends Env = Env, M extends string = string
84
314
  H<E6, MergedPath, I5>,
85
315
  H<E7, MergedPath, I6, R>
86
316
  ]): HonoBase<E, S & ToSchema<M, MergePath<BasePath, P>, I6, MergeTypedResponse<R>>, BasePath>;
87
- <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 = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>, E6 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, E7 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>, E8 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7]>, E9 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8]>>(...handlers: [
317
+ <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 = IntersectNonAnyTypes<[
318
+ E,
319
+ E2
320
+ ]>, E4 extends Env = IntersectNonAnyTypes<[
321
+ E,
322
+ E2,
323
+ E3
324
+ ]>, E5 extends Env = IntersectNonAnyTypes<[
325
+ E,
326
+ E2,
327
+ E3,
328
+ E4
329
+ ]>, E6 extends Env = IntersectNonAnyTypes<[
330
+ E,
331
+ E2,
332
+ E3,
333
+ E4,
334
+ E5
335
+ ]>, E7 extends Env = IntersectNonAnyTypes<[
336
+ E,
337
+ E2,
338
+ E3,
339
+ E4,
340
+ E5,
341
+ E6
342
+ ]>, E8 extends Env = IntersectNonAnyTypes<[
343
+ E,
344
+ E2,
345
+ E3,
346
+ E4,
347
+ E5,
348
+ E6,
349
+ E7
350
+ ]>, E9 extends Env = IntersectNonAnyTypes<[
351
+ E,
352
+ E2,
353
+ E3,
354
+ E4,
355
+ E5,
356
+ E6,
357
+ E7,
358
+ E8
359
+ ]>>(...handlers: [
88
360
  H<E2, P, I>,
89
361
  H<E3, P, I2>,
90
362
  H<E4, P, I3>,
@@ -93,8 +365,51 @@ export interface HandlerInterface<E extends Env = Env, M extends string = string
93
365
  H<E7, P, I6>,
94
366
  H<E8, P, I7>,
95
367
  H<E9, P, I8, R>
96
- ]): HonoBase<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9]>, S & ToSchema<M, P, I8, MergeTypedResponse<R>>, BasePath>;
97
- <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, 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 = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>, E6 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, E7 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>, E8 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7]>>(path: P, ...handlers: [
368
+ ]): HonoBase<IntersectNonAnyTypes<[
369
+ E,
370
+ E2,
371
+ E3,
372
+ E4,
373
+ E5,
374
+ E6,
375
+ E7,
376
+ E8,
377
+ E9
378
+ ]>, S & ToSchema<M, P, I8, MergeTypedResponse<R>>, BasePath>;
379
+ <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, 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 = IntersectNonAnyTypes<[
380
+ E,
381
+ E2
382
+ ]>, E4 extends Env = IntersectNonAnyTypes<[
383
+ E,
384
+ E2,
385
+ E3
386
+ ]>, E5 extends Env = IntersectNonAnyTypes<[
387
+ E,
388
+ E2,
389
+ E3,
390
+ E4
391
+ ]>, E6 extends Env = IntersectNonAnyTypes<[
392
+ E,
393
+ E2,
394
+ E3,
395
+ E4,
396
+ E5
397
+ ]>, E7 extends Env = IntersectNonAnyTypes<[
398
+ E,
399
+ E2,
400
+ E3,
401
+ E4,
402
+ E5,
403
+ E6
404
+ ]>, E8 extends Env = IntersectNonAnyTypes<[
405
+ E,
406
+ E2,
407
+ E3,
408
+ E4,
409
+ E5,
410
+ E6,
411
+ E7
412
+ ]>>(path: P, ...handlers: [
98
413
  H<E2, MergedPath, I>,
99
414
  H<E3, MergedPath, I2>,
100
415
  H<E4, MergedPath, I3>,
@@ -103,7 +418,59 @@ export interface HandlerInterface<E extends Env = Env, M extends string = string
103
418
  H<E7, MergedPath, I6>,
104
419
  H<E8, MergedPath, I7, R>
105
420
  ]): HonoBase<E, S & ToSchema<M, MergePath<BasePath, P>, I7, MergeTypedResponse<R>>, BasePath>;
106
- <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 = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>, E6 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, E7 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>, E8 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7]>, E9 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8]>, E10 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9]>>(...handlers: [
421
+ <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 = IntersectNonAnyTypes<[
422
+ E,
423
+ E2
424
+ ]>, E4 extends Env = IntersectNonAnyTypes<[
425
+ E,
426
+ E2,
427
+ E3
428
+ ]>, E5 extends Env = IntersectNonAnyTypes<[
429
+ E,
430
+ E2,
431
+ E3,
432
+ E4
433
+ ]>, E6 extends Env = IntersectNonAnyTypes<[
434
+ E,
435
+ E2,
436
+ E3,
437
+ E4,
438
+ E5
439
+ ]>, E7 extends Env = IntersectNonAnyTypes<[
440
+ E,
441
+ E2,
442
+ E3,
443
+ E4,
444
+ E5,
445
+ E6
446
+ ]>, E8 extends Env = IntersectNonAnyTypes<[
447
+ E,
448
+ E2,
449
+ E3,
450
+ E4,
451
+ E5,
452
+ E6,
453
+ E7
454
+ ]>, E9 extends Env = IntersectNonAnyTypes<[
455
+ E,
456
+ E2,
457
+ E3,
458
+ E4,
459
+ E5,
460
+ E6,
461
+ E7,
462
+ E8
463
+ ]>, E10 extends Env = IntersectNonAnyTypes<[
464
+ E,
465
+ E2,
466
+ E3,
467
+ E4,
468
+ E5,
469
+ E6,
470
+ E7,
471
+ E8,
472
+ E9
473
+ ]>>(...handlers: [
107
474
  H<E2, P, I>,
108
475
  H<E3, P, I2>,
109
476
  H<E4, P, I3>,
@@ -113,8 +480,61 @@ export interface HandlerInterface<E extends Env = Env, M extends string = string
113
480
  H<E8, P, I7>,
114
481
  H<E9, P, I8>,
115
482
  H<E10, P, I9, R>
116
- ]): HonoBase<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9, E10]>, S & ToSchema<M, P, I9, MergeTypedResponse<R>>, BasePath>;
117
- <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, 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 = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>, E6 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, E7 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>, E8 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7]>, E9 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8]>>(path: P, ...handlers: [
483
+ ]): HonoBase<IntersectNonAnyTypes<[
484
+ E,
485
+ E2,
486
+ E3,
487
+ E4,
488
+ E5,
489
+ E6,
490
+ E7,
491
+ E8,
492
+ E9,
493
+ E10
494
+ ]>, S & ToSchema<M, P, I9, MergeTypedResponse<R>>, BasePath>;
495
+ <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, 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 = IntersectNonAnyTypes<[
496
+ E,
497
+ E2
498
+ ]>, E4 extends Env = IntersectNonAnyTypes<[
499
+ E,
500
+ E2,
501
+ E3
502
+ ]>, E5 extends Env = IntersectNonAnyTypes<[
503
+ E,
504
+ E2,
505
+ E3,
506
+ E4
507
+ ]>, E6 extends Env = IntersectNonAnyTypes<[
508
+ E,
509
+ E2,
510
+ E3,
511
+ E4,
512
+ E5
513
+ ]>, E7 extends Env = IntersectNonAnyTypes<[
514
+ E,
515
+ E2,
516
+ E3,
517
+ E4,
518
+ E5,
519
+ E6
520
+ ]>, E8 extends Env = IntersectNonAnyTypes<[
521
+ E,
522
+ E2,
523
+ E3,
524
+ E4,
525
+ E5,
526
+ E6,
527
+ E7
528
+ ]>, E9 extends Env = IntersectNonAnyTypes<[
529
+ E,
530
+ E2,
531
+ E3,
532
+ E4,
533
+ E5,
534
+ E6,
535
+ E7,
536
+ E8
537
+ ]>>(path: P, ...handlers: [
118
538
  H<E2, MergedPath, I>,
119
539
  H<E3, MergedPath, I2>,
120
540
  H<E4, MergedPath, I3>,
@@ -124,7 +544,70 @@ export interface HandlerInterface<E extends Env = Env, M extends string = string
124
544
  H<E8, MergedPath, I7>,
125
545
  H<E9, MergedPath, I8, R>
126
546
  ]): HonoBase<E, S & ToSchema<M, MergePath<BasePath, P>, I8, MergeTypedResponse<R>>, BasePath>;
127
- <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 = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>, E6 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, E7 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>, E8 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7]>, E9 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8]>, E10 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9]>, E11 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9, E10]>>(...handlers: [
547
+ <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 = IntersectNonAnyTypes<[
548
+ E,
549
+ E2
550
+ ]>, E4 extends Env = IntersectNonAnyTypes<[
551
+ E,
552
+ E2,
553
+ E3
554
+ ]>, E5 extends Env = IntersectNonAnyTypes<[
555
+ E,
556
+ E2,
557
+ E3,
558
+ E4
559
+ ]>, E6 extends Env = IntersectNonAnyTypes<[
560
+ E,
561
+ E2,
562
+ E3,
563
+ E4,
564
+ E5
565
+ ]>, E7 extends Env = IntersectNonAnyTypes<[
566
+ E,
567
+ E2,
568
+ E3,
569
+ E4,
570
+ E5,
571
+ E6
572
+ ]>, E8 extends Env = IntersectNonAnyTypes<[
573
+ E,
574
+ E2,
575
+ E3,
576
+ E4,
577
+ E5,
578
+ E6,
579
+ E7
580
+ ]>, E9 extends Env = IntersectNonAnyTypes<[
581
+ E,
582
+ E2,
583
+ E3,
584
+ E4,
585
+ E5,
586
+ E6,
587
+ E7,
588
+ E8
589
+ ]>, E10 extends Env = IntersectNonAnyTypes<[
590
+ E,
591
+ E2,
592
+ E3,
593
+ E4,
594
+ E5,
595
+ E6,
596
+ E7,
597
+ E8,
598
+ E9
599
+ ]>, E11 extends Env = IntersectNonAnyTypes<[
600
+ E,
601
+ E2,
602
+ E3,
603
+ E4,
604
+ E5,
605
+ E6,
606
+ E7,
607
+ E8,
608
+ E9,
609
+ E10
610
+ ]>>(...handlers: [
128
611
  H<E2, P, I>,
129
612
  H<E3, P, I2>,
130
613
  H<E4, P, I3>,
@@ -135,8 +618,72 @@ export interface HandlerInterface<E extends Env = Env, M extends string = string
135
618
  H<E9, P, I8>,
136
619
  H<E10, P, I9>,
137
620
  H<E11, P, I10, R>
138
- ]): HonoBase<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9, E10, E11]>, S & ToSchema<M, P, I10, MergeTypedResponse<R>>, BasePath>;
139
- <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, 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 = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>, E6 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, E7 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>, E8 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7]>, E9 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8]>, E10 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9]>>(path: P, ...handlers: [
621
+ ]): HonoBase<IntersectNonAnyTypes<[
622
+ E,
623
+ E2,
624
+ E3,
625
+ E4,
626
+ E5,
627
+ E6,
628
+ E7,
629
+ E8,
630
+ E9,
631
+ E10,
632
+ E11
633
+ ]>, S & ToSchema<M, P, I10, MergeTypedResponse<R>>, BasePath>;
634
+ <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, 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 = IntersectNonAnyTypes<[
635
+ E,
636
+ E2
637
+ ]>, E4 extends Env = IntersectNonAnyTypes<[
638
+ E,
639
+ E2,
640
+ E3
641
+ ]>, E5 extends Env = IntersectNonAnyTypes<[
642
+ E,
643
+ E2,
644
+ E3,
645
+ E4
646
+ ]>, E6 extends Env = IntersectNonAnyTypes<[
647
+ E,
648
+ E2,
649
+ E3,
650
+ E4,
651
+ E5
652
+ ]>, E7 extends Env = IntersectNonAnyTypes<[
653
+ E,
654
+ E2,
655
+ E3,
656
+ E4,
657
+ E5,
658
+ E6
659
+ ]>, E8 extends Env = IntersectNonAnyTypes<[
660
+ E,
661
+ E2,
662
+ E3,
663
+ E4,
664
+ E5,
665
+ E6,
666
+ E7
667
+ ]>, E9 extends Env = IntersectNonAnyTypes<[
668
+ E,
669
+ E2,
670
+ E3,
671
+ E4,
672
+ E5,
673
+ E6,
674
+ E7,
675
+ E8
676
+ ]>, E10 extends Env = IntersectNonAnyTypes<[
677
+ E,
678
+ E2,
679
+ E3,
680
+ E4,
681
+ E5,
682
+ E6,
683
+ E7,
684
+ E8,
685
+ E9
686
+ ]>>(path: P, ...handlers: [
140
687
  H<E2, MergedPath, I>,
141
688
  H<E3, MergedPath, I2>,
142
689
  H<E4, MergedPath, I3>,
@@ -147,7 +694,70 @@ export interface HandlerInterface<E extends Env = Env, M extends string = string
147
694
  H<E9, MergedPath, I8>,
148
695
  H<E10, MergedPath, I9, R>
149
696
  ]): HonoBase<E, S & ToSchema<M, MergePath<BasePath, P>, I9, MergeTypedResponse<R>>, BasePath>;
150
- <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, 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 = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>, E6 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, E7 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>, E8 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7]>, E9 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8]>, E10 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9]>, E11 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9, E10]>>(path: P, ...handlers: [
697
+ <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, 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 = IntersectNonAnyTypes<[
698
+ E,
699
+ E2
700
+ ]>, E4 extends Env = IntersectNonAnyTypes<[
701
+ E,
702
+ E2,
703
+ E3
704
+ ]>, E5 extends Env = IntersectNonAnyTypes<[
705
+ E,
706
+ E2,
707
+ E3,
708
+ E4
709
+ ]>, E6 extends Env = IntersectNonAnyTypes<[
710
+ E,
711
+ E2,
712
+ E3,
713
+ E4,
714
+ E5
715
+ ]>, E7 extends Env = IntersectNonAnyTypes<[
716
+ E,
717
+ E2,
718
+ E3,
719
+ E4,
720
+ E5,
721
+ E6
722
+ ]>, E8 extends Env = IntersectNonAnyTypes<[
723
+ E,
724
+ E2,
725
+ E3,
726
+ E4,
727
+ E5,
728
+ E6,
729
+ E7
730
+ ]>, E9 extends Env = IntersectNonAnyTypes<[
731
+ E,
732
+ E2,
733
+ E3,
734
+ E4,
735
+ E5,
736
+ E6,
737
+ E7,
738
+ E8
739
+ ]>, E10 extends Env = IntersectNonAnyTypes<[
740
+ E,
741
+ E2,
742
+ E3,
743
+ E4,
744
+ E5,
745
+ E6,
746
+ E7,
747
+ E8,
748
+ E9
749
+ ]>, E11 extends Env = IntersectNonAnyTypes<[
750
+ E,
751
+ E2,
752
+ E3,
753
+ E4,
754
+ E5,
755
+ E6,
756
+ E7,
757
+ E8,
758
+ E9,
759
+ E10
760
+ ]>>(path: P, ...handlers: [
151
761
  H<E2, MergedPath, I>,
152
762
  H<E3, MergedPath, I2>,
153
763
  H<E4, MergedPath, I3>,
@@ -163,49 +773,262 @@ export interface HandlerInterface<E extends Env = Env, M extends string = string
163
773
  <P extends string, I extends Input = BlankInput, R extends HandlerResponse<any> = any>(path: P, ...handlers: H<E, MergePath<BasePath, P>, I, R>[]): HonoBase<E, S & ToSchema<M, MergePath<BasePath, P>, I, MergeTypedResponse<R>>, BasePath>;
164
774
  <P extends string, R extends HandlerResponse<any> = any, I extends Input = BlankInput>(path: P): HonoBase<E, S & ToSchema<M, MergePath<BasePath, P>, I, MergeTypedResponse<R>>, BasePath>;
165
775
  }
166
- export interface MiddlewareHandlerInterface<E extends Env = Env, S extends Schema = BlankSchema, BasePath extends string = '/'> {
167
- <E2 extends Env = E>(...handlers: MiddlewareHandler<E2, MergePath<BasePath, ExtractStringKey<S>>>[]): HonoBase<IntersectNonAnyTypes<[E, E2]>, S, BasePath>;
168
- <E2 extends Env = E>(handler: MiddlewareHandler<E2, MergePath<BasePath, ExtractStringKey<S>>>): HonoBase<IntersectNonAnyTypes<[E, E2]>, S, BasePath>;
169
- <E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, P extends string = MergePath<BasePath, ExtractStringKey<S>>>(...handlers: [MiddlewareHandler<E2, P>, MiddlewareHandler<E3, P>]): HonoBase<IntersectNonAnyTypes<[E, E2, E3]>, S, BasePath>;
170
- <P extends string, MergedPath extends MergePath<BasePath, P> = MergePath<BasePath, P>, E2 extends Env = E>(path: P, handler: MiddlewareHandler<E2, MergedPath>): HonoBase<IntersectNonAnyTypes<[E, E2]>, ChangePathOfSchema<S, MergedPath>, BasePath>;
171
- <E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, P extends string = MergePath<BasePath, ExtractStringKey<S>>>(...handlers: [MiddlewareHandler<E2, P>, MiddlewareHandler<E3, P>, MiddlewareHandler<E4, P>]): HonoBase<IntersectNonAnyTypes<[E, E2, E3, E4]>, S, BasePath>;
172
- <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>]): HonoBase<IntersectNonAnyTypes<[E, E2, E3]>, ChangePathOfSchema<S, MergedPath>, BasePath>;
173
- <E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>, P extends string = MergePath<BasePath, ExtractStringKey<S>>>(...handlers: [
776
+ export interface MiddlewareHandlerInterface<E extends Env = Env, S extends Schema = BlankSchema, BasePath extends string = "/"> {
777
+ <E2 extends Env = E>(...handlers: MiddlewareHandler<E2, MergePath<BasePath, ExtractStringKey<S>>>[]): HonoBase<IntersectNonAnyTypes<[
778
+ E,
779
+ E2
780
+ ]>, S, BasePath>;
781
+ <E2 extends Env = E>(handler: MiddlewareHandler<E2, MergePath<BasePath, ExtractStringKey<S>>>): HonoBase<IntersectNonAnyTypes<[
782
+ E,
783
+ E2
784
+ ]>, S, BasePath>;
785
+ <E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[
786
+ E,
787
+ E2
788
+ ]>, P extends string = MergePath<BasePath, ExtractStringKey<S>>>(...handlers: [
789
+ MiddlewareHandler<E2, P>,
790
+ MiddlewareHandler<E3, P>
791
+ ]): HonoBase<IntersectNonAnyTypes<[
792
+ E,
793
+ E2,
794
+ E3
795
+ ]>, S, BasePath>;
796
+ <P extends string, MergedPath extends MergePath<BasePath, P> = MergePath<BasePath, P>, E2 extends Env = E>(path: P, handler: MiddlewareHandler<E2, MergedPath>): HonoBase<IntersectNonAnyTypes<[
797
+ E,
798
+ E2
799
+ ]>, ChangePathOfSchema<S, MergedPath>, BasePath>;
800
+ <E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[
801
+ E,
802
+ E2
803
+ ]>, E4 extends Env = IntersectNonAnyTypes<[
804
+ E,
805
+ E2,
806
+ E3
807
+ ]>, P extends string = MergePath<BasePath, ExtractStringKey<S>>>(...handlers: [
808
+ MiddlewareHandler<E2, P>,
809
+ MiddlewareHandler<E3, P>,
810
+ MiddlewareHandler<E4, P>
811
+ ]): HonoBase<IntersectNonAnyTypes<[
812
+ E,
813
+ E2,
814
+ E3,
815
+ E4
816
+ ]>, S, BasePath>;
817
+ <P extends string, MergedPath extends MergePath<BasePath, P> = MergePath<BasePath, P>, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[
818
+ E,
819
+ E2
820
+ ]>>(path: P, ...handlers: [
821
+ MiddlewareHandler<E2, P>,
822
+ MiddlewareHandler<E3, P>
823
+ ]): HonoBase<IntersectNonAnyTypes<[
824
+ E,
825
+ E2,
826
+ E3
827
+ ]>, ChangePathOfSchema<S, MergedPath>, BasePath>;
828
+ <E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[
829
+ E,
830
+ E2
831
+ ]>, E4 extends Env = IntersectNonAnyTypes<[
832
+ E,
833
+ E2,
834
+ E3
835
+ ]>, E5 extends Env = IntersectNonAnyTypes<[
836
+ E,
837
+ E2,
838
+ E3,
839
+ E4
840
+ ]>, P extends string = MergePath<BasePath, ExtractStringKey<S>>>(...handlers: [
174
841
  MiddlewareHandler<E2, P>,
175
842
  MiddlewareHandler<E3, P>,
176
843
  MiddlewareHandler<E4, P>,
177
844
  MiddlewareHandler<E5, P>
178
- ]): HonoBase<IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, S, BasePath>;
179
- <P extends string, MergedPath extends MergePath<BasePath, P> = MergePath<BasePath, P>, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>>(path: P, ...handlers: [MiddlewareHandler<E2, P>, MiddlewareHandler<E3, P>, MiddlewareHandler<E4, P>]): HonoBase<IntersectNonAnyTypes<[E, E2, E3, E4]>, ChangePathOfSchema<S, MergedPath>, BasePath>;
180
- <E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>, E6 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, P extends string = MergePath<BasePath, ExtractStringKey<S>>>(...handlers: [
845
+ ]): HonoBase<IntersectNonAnyTypes<[
846
+ E,
847
+ E2,
848
+ E3,
849
+ E4,
850
+ E5
851
+ ]>, S, BasePath>;
852
+ <P extends string, MergedPath extends MergePath<BasePath, P> = MergePath<BasePath, P>, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[
853
+ E,
854
+ E2
855
+ ]>, E4 extends Env = IntersectNonAnyTypes<[
856
+ E,
857
+ E2,
858
+ E3
859
+ ]>>(path: P, ...handlers: [
860
+ MiddlewareHandler<E2, P>,
861
+ MiddlewareHandler<E3, P>,
862
+ MiddlewareHandler<E4, P>
863
+ ]): HonoBase<IntersectNonAnyTypes<[
864
+ E,
865
+ E2,
866
+ E3,
867
+ E4
868
+ ]>, ChangePathOfSchema<S, MergedPath>, BasePath>;
869
+ <E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[
870
+ E,
871
+ E2
872
+ ]>, E4 extends Env = IntersectNonAnyTypes<[
873
+ E,
874
+ E2,
875
+ E3
876
+ ]>, E5 extends Env = IntersectNonAnyTypes<[
877
+ E,
878
+ E2,
879
+ E3,
880
+ E4
881
+ ]>, E6 extends Env = IntersectNonAnyTypes<[
882
+ E,
883
+ E2,
884
+ E3,
885
+ E4,
886
+ E5
887
+ ]>, P extends string = MergePath<BasePath, ExtractStringKey<S>>>(...handlers: [
181
888
  MiddlewareHandler<E2, P>,
182
889
  MiddlewareHandler<E3, P>,
183
890
  MiddlewareHandler<E4, P>,
184
891
  MiddlewareHandler<E5, P>,
185
892
  MiddlewareHandler<E6, P>
186
- ]): HonoBase<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>, S, BasePath>;
187
- <P extends string, MergedPath extends MergePath<BasePath, P> = MergePath<BasePath, P>, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>>(path: P, ...handlers: [
893
+ ]): HonoBase<IntersectNonAnyTypes<[
894
+ E,
895
+ E2,
896
+ E3,
897
+ E4,
898
+ E5,
899
+ E6
900
+ ]>, S, BasePath>;
901
+ <P extends string, MergedPath extends MergePath<BasePath, P> = MergePath<BasePath, P>, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[
902
+ E,
903
+ E2
904
+ ]>, E4 extends Env = IntersectNonAnyTypes<[
905
+ E,
906
+ E2,
907
+ E3
908
+ ]>, E5 extends Env = IntersectNonAnyTypes<[
909
+ E,
910
+ E2,
911
+ E3,
912
+ E4
913
+ ]>>(path: P, ...handlers: [
188
914
  MiddlewareHandler<E2, P>,
189
915
  MiddlewareHandler<E3, P>,
190
916
  MiddlewareHandler<E4, P>,
191
917
  MiddlewareHandler<E5, P>
192
- ]): HonoBase<IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, ChangePathOfSchema<S, MergedPath>, BasePath>;
193
- <E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>, E6 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, E7 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>, P extends string = MergePath<BasePath, ExtractStringKey<S>>>(...handlers: [
918
+ ]): HonoBase<IntersectNonAnyTypes<[
919
+ E,
920
+ E2,
921
+ E3,
922
+ E4,
923
+ E5
924
+ ]>, ChangePathOfSchema<S, MergedPath>, BasePath>;
925
+ <E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[
926
+ E,
927
+ E2
928
+ ]>, E4 extends Env = IntersectNonAnyTypes<[
929
+ E,
930
+ E2,
931
+ E3
932
+ ]>, E5 extends Env = IntersectNonAnyTypes<[
933
+ E,
934
+ E2,
935
+ E3,
936
+ E4
937
+ ]>, E6 extends Env = IntersectNonAnyTypes<[
938
+ E,
939
+ E2,
940
+ E3,
941
+ E4,
942
+ E5
943
+ ]>, E7 extends Env = IntersectNonAnyTypes<[
944
+ E,
945
+ E2,
946
+ E3,
947
+ E4,
948
+ E5,
949
+ E6
950
+ ]>, P extends string = MergePath<BasePath, ExtractStringKey<S>>>(...handlers: [
194
951
  MiddlewareHandler<E2, P>,
195
952
  MiddlewareHandler<E3, P>,
196
953
  MiddlewareHandler<E4, P>,
197
954
  MiddlewareHandler<E5, P>,
198
955
  MiddlewareHandler<E6, P>,
199
956
  MiddlewareHandler<E7, P>
200
- ]): HonoBase<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7]>, S, BasePath>;
201
- <P extends string, MergedPath extends MergePath<BasePath, P> = MergePath<BasePath, P>, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>, E6 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5]>>(path: P, ...handlers: [
957
+ ]): HonoBase<IntersectNonAnyTypes<[
958
+ E,
959
+ E2,
960
+ E3,
961
+ E4,
962
+ E5,
963
+ E6,
964
+ E7
965
+ ]>, S, BasePath>;
966
+ <P extends string, MergedPath extends MergePath<BasePath, P> = MergePath<BasePath, P>, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[
967
+ E,
968
+ E2
969
+ ]>, E4 extends Env = IntersectNonAnyTypes<[
970
+ E,
971
+ E2,
972
+ E3
973
+ ]>, E5 extends Env = IntersectNonAnyTypes<[
974
+ E,
975
+ E2,
976
+ E3,
977
+ E4
978
+ ]>, E6 extends Env = IntersectNonAnyTypes<[
979
+ E,
980
+ E2,
981
+ E3,
982
+ E4,
983
+ E5
984
+ ]>>(path: P, ...handlers: [
202
985
  MiddlewareHandler<E2, P>,
203
986
  MiddlewareHandler<E3, P>,
204
987
  MiddlewareHandler<E4, P>,
205
988
  MiddlewareHandler<E5, P>,
206
989
  MiddlewareHandler<E6, P>
207
- ]): HonoBase<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>, ChangePathOfSchema<S, MergedPath>, BasePath>;
208
- <E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>, E6 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, E7 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>, E8 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7]>, P extends string = MergePath<BasePath, ExtractStringKey<S>>>(...handlers: [
990
+ ]): HonoBase<IntersectNonAnyTypes<[
991
+ E,
992
+ E2,
993
+ E3,
994
+ E4,
995
+ E5,
996
+ E6
997
+ ]>, ChangePathOfSchema<S, MergedPath>, BasePath>;
998
+ <E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[
999
+ E,
1000
+ E2
1001
+ ]>, E4 extends Env = IntersectNonAnyTypes<[
1002
+ E,
1003
+ E2,
1004
+ E3
1005
+ ]>, E5 extends Env = IntersectNonAnyTypes<[
1006
+ E,
1007
+ E2,
1008
+ E3,
1009
+ E4
1010
+ ]>, E6 extends Env = IntersectNonAnyTypes<[
1011
+ E,
1012
+ E2,
1013
+ E3,
1014
+ E4,
1015
+ E5
1016
+ ]>, E7 extends Env = IntersectNonAnyTypes<[
1017
+ E,
1018
+ E2,
1019
+ E3,
1020
+ E4,
1021
+ E5,
1022
+ E6
1023
+ ]>, E8 extends Env = IntersectNonAnyTypes<[
1024
+ E,
1025
+ E2,
1026
+ E3,
1027
+ E4,
1028
+ E5,
1029
+ E6,
1030
+ E7
1031
+ ]>, P extends string = MergePath<BasePath, ExtractStringKey<S>>>(...handlers: [
209
1032
  MiddlewareHandler<E2, P>,
210
1033
  MiddlewareHandler<E3, P>,
211
1034
  MiddlewareHandler<E4, P>,
@@ -213,16 +1036,100 @@ export interface MiddlewareHandlerInterface<E extends Env = Env, S extends Schem
213
1036
  MiddlewareHandler<E6, P>,
214
1037
  MiddlewareHandler<E7, P>,
215
1038
  MiddlewareHandler<E8, P>
216
- ]): HonoBase<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8]>, S, BasePath>;
217
- <P extends string, MergedPath extends MergePath<BasePath, P> = MergePath<BasePath, P>, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>, E6 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, E7 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>>(path: P, ...handlers: [
1039
+ ]): HonoBase<IntersectNonAnyTypes<[
1040
+ E,
1041
+ E2,
1042
+ E3,
1043
+ E4,
1044
+ E5,
1045
+ E6,
1046
+ E7,
1047
+ E8
1048
+ ]>, S, BasePath>;
1049
+ <P extends string, MergedPath extends MergePath<BasePath, P> = MergePath<BasePath, P>, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[
1050
+ E,
1051
+ E2
1052
+ ]>, E4 extends Env = IntersectNonAnyTypes<[
1053
+ E,
1054
+ E2,
1055
+ E3
1056
+ ]>, E5 extends Env = IntersectNonAnyTypes<[
1057
+ E,
1058
+ E2,
1059
+ E3,
1060
+ E4
1061
+ ]>, E6 extends Env = IntersectNonAnyTypes<[
1062
+ E,
1063
+ E2,
1064
+ E3,
1065
+ E4,
1066
+ E5
1067
+ ]>, E7 extends Env = IntersectNonAnyTypes<[
1068
+ E,
1069
+ E2,
1070
+ E3,
1071
+ E4,
1072
+ E5,
1073
+ E6
1074
+ ]>>(path: P, ...handlers: [
218
1075
  MiddlewareHandler<E2, P>,
219
1076
  MiddlewareHandler<E3, P>,
220
1077
  MiddlewareHandler<E4, P>,
221
1078
  MiddlewareHandler<E5, P>,
222
1079
  MiddlewareHandler<E6, P>,
223
1080
  MiddlewareHandler<E7, P>
224
- ]): HonoBase<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7]>, ChangePathOfSchema<S, MergedPath>, BasePath>;
225
- <E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>, E6 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, E7 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>, E8 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7]>, E9 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8]>, P extends string = MergePath<BasePath, ExtractStringKey<S>>>(...handlers: [
1081
+ ]): HonoBase<IntersectNonAnyTypes<[
1082
+ E,
1083
+ E2,
1084
+ E3,
1085
+ E4,
1086
+ E5,
1087
+ E6,
1088
+ E7
1089
+ ]>, ChangePathOfSchema<S, MergedPath>, BasePath>;
1090
+ <E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[
1091
+ E,
1092
+ E2
1093
+ ]>, E4 extends Env = IntersectNonAnyTypes<[
1094
+ E,
1095
+ E2,
1096
+ E3
1097
+ ]>, E5 extends Env = IntersectNonAnyTypes<[
1098
+ E,
1099
+ E2,
1100
+ E3,
1101
+ E4
1102
+ ]>, E6 extends Env = IntersectNonAnyTypes<[
1103
+ E,
1104
+ E2,
1105
+ E3,
1106
+ E4,
1107
+ E5
1108
+ ]>, E7 extends Env = IntersectNonAnyTypes<[
1109
+ E,
1110
+ E2,
1111
+ E3,
1112
+ E4,
1113
+ E5,
1114
+ E6
1115
+ ]>, E8 extends Env = IntersectNonAnyTypes<[
1116
+ E,
1117
+ E2,
1118
+ E3,
1119
+ E4,
1120
+ E5,
1121
+ E6,
1122
+ E7
1123
+ ]>, E9 extends Env = IntersectNonAnyTypes<[
1124
+ E,
1125
+ E2,
1126
+ E3,
1127
+ E4,
1128
+ E5,
1129
+ E6,
1130
+ E7,
1131
+ E8
1132
+ ]>, P extends string = MergePath<BasePath, ExtractStringKey<S>>>(...handlers: [
226
1133
  MiddlewareHandler<E2, P>,
227
1134
  MiddlewareHandler<E3, P>,
228
1135
  MiddlewareHandler<E4, P>,
@@ -231,8 +1138,51 @@ export interface MiddlewareHandlerInterface<E extends Env = Env, S extends Schem
231
1138
  MiddlewareHandler<E7, P>,
232
1139
  MiddlewareHandler<E8, P>,
233
1140
  MiddlewareHandler<E9, P>
234
- ]): HonoBase<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9]>, S, BasePath>;
235
- <P extends string, MergedPath extends MergePath<BasePath, P> = MergePath<BasePath, P>, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>, E6 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, E7 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>, E8 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7]>>(path: P, ...handlers: [
1141
+ ]): HonoBase<IntersectNonAnyTypes<[
1142
+ E,
1143
+ E2,
1144
+ E3,
1145
+ E4,
1146
+ E5,
1147
+ E6,
1148
+ E7,
1149
+ E8,
1150
+ E9
1151
+ ]>, S, BasePath>;
1152
+ <P extends string, MergedPath extends MergePath<BasePath, P> = MergePath<BasePath, P>, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[
1153
+ E,
1154
+ E2
1155
+ ]>, E4 extends Env = IntersectNonAnyTypes<[
1156
+ E,
1157
+ E2,
1158
+ E3
1159
+ ]>, E5 extends Env = IntersectNonAnyTypes<[
1160
+ E,
1161
+ E2,
1162
+ E3,
1163
+ E4
1164
+ ]>, E6 extends Env = IntersectNonAnyTypes<[
1165
+ E,
1166
+ E2,
1167
+ E3,
1168
+ E4,
1169
+ E5
1170
+ ]>, E7 extends Env = IntersectNonAnyTypes<[
1171
+ E,
1172
+ E2,
1173
+ E3,
1174
+ E4,
1175
+ E5,
1176
+ E6
1177
+ ]>, E8 extends Env = IntersectNonAnyTypes<[
1178
+ E,
1179
+ E2,
1180
+ E3,
1181
+ E4,
1182
+ E5,
1183
+ E6,
1184
+ E7
1185
+ ]>>(path: P, ...handlers: [
236
1186
  MiddlewareHandler<E2, P>,
237
1187
  MiddlewareHandler<E3, P>,
238
1188
  MiddlewareHandler<E4, P>,
@@ -240,8 +1190,69 @@ export interface MiddlewareHandlerInterface<E extends Env = Env, S extends Schem
240
1190
  MiddlewareHandler<E6, P>,
241
1191
  MiddlewareHandler<E7, P>,
242
1192
  MiddlewareHandler<E8, P>
243
- ]): HonoBase<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8]>, ChangePathOfSchema<S, MergedPath>, BasePath>;
244
- <E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>, E6 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, E7 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>, E8 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7]>, E9 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8]>, E10 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9]>, P extends string = MergePath<BasePath, ExtractStringKey<S>>>(...handlers: [
1193
+ ]): HonoBase<IntersectNonAnyTypes<[
1194
+ E,
1195
+ E2,
1196
+ E3,
1197
+ E4,
1198
+ E5,
1199
+ E6,
1200
+ E7,
1201
+ E8
1202
+ ]>, ChangePathOfSchema<S, MergedPath>, BasePath>;
1203
+ <E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[
1204
+ E,
1205
+ E2
1206
+ ]>, E4 extends Env = IntersectNonAnyTypes<[
1207
+ E,
1208
+ E2,
1209
+ E3
1210
+ ]>, E5 extends Env = IntersectNonAnyTypes<[
1211
+ E,
1212
+ E2,
1213
+ E3,
1214
+ E4
1215
+ ]>, E6 extends Env = IntersectNonAnyTypes<[
1216
+ E,
1217
+ E2,
1218
+ E3,
1219
+ E4,
1220
+ E5
1221
+ ]>, E7 extends Env = IntersectNonAnyTypes<[
1222
+ E,
1223
+ E2,
1224
+ E3,
1225
+ E4,
1226
+ E5,
1227
+ E6
1228
+ ]>, E8 extends Env = IntersectNonAnyTypes<[
1229
+ E,
1230
+ E2,
1231
+ E3,
1232
+ E4,
1233
+ E5,
1234
+ E6,
1235
+ E7
1236
+ ]>, E9 extends Env = IntersectNonAnyTypes<[
1237
+ E,
1238
+ E2,
1239
+ E3,
1240
+ E4,
1241
+ E5,
1242
+ E6,
1243
+ E7,
1244
+ E8
1245
+ ]>, E10 extends Env = IntersectNonAnyTypes<[
1246
+ E,
1247
+ E2,
1248
+ E3,
1249
+ E4,
1250
+ E5,
1251
+ E6,
1252
+ E7,
1253
+ E8,
1254
+ E9
1255
+ ]>, P extends string = MergePath<BasePath, ExtractStringKey<S>>>(...handlers: [
245
1256
  MiddlewareHandler<E2, P>,
246
1257
  MiddlewareHandler<E3, P>,
247
1258
  MiddlewareHandler<E4, P>,
@@ -251,8 +1262,61 @@ export interface MiddlewareHandlerInterface<E extends Env = Env, S extends Schem
251
1262
  MiddlewareHandler<E8, P>,
252
1263
  MiddlewareHandler<E9, P>,
253
1264
  MiddlewareHandler<E10, P>
254
- ]): HonoBase<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9, E10]>, S, BasePath>;
255
- <P extends string, MergedPath extends MergePath<BasePath, P> = MergePath<BasePath, P>, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>, E6 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, E7 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>, E8 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7]>, E9 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8]>>(path: P, ...handlers: [
1265
+ ]): HonoBase<IntersectNonAnyTypes<[
1266
+ E,
1267
+ E2,
1268
+ E3,
1269
+ E4,
1270
+ E5,
1271
+ E6,
1272
+ E7,
1273
+ E8,
1274
+ E9,
1275
+ E10
1276
+ ]>, S, BasePath>;
1277
+ <P extends string, MergedPath extends MergePath<BasePath, P> = MergePath<BasePath, P>, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[
1278
+ E,
1279
+ E2
1280
+ ]>, E4 extends Env = IntersectNonAnyTypes<[
1281
+ E,
1282
+ E2,
1283
+ E3
1284
+ ]>, E5 extends Env = IntersectNonAnyTypes<[
1285
+ E,
1286
+ E2,
1287
+ E3,
1288
+ E4
1289
+ ]>, E6 extends Env = IntersectNonAnyTypes<[
1290
+ E,
1291
+ E2,
1292
+ E3,
1293
+ E4,
1294
+ E5
1295
+ ]>, E7 extends Env = IntersectNonAnyTypes<[
1296
+ E,
1297
+ E2,
1298
+ E3,
1299
+ E4,
1300
+ E5,
1301
+ E6
1302
+ ]>, E8 extends Env = IntersectNonAnyTypes<[
1303
+ E,
1304
+ E2,
1305
+ E3,
1306
+ E4,
1307
+ E5,
1308
+ E6,
1309
+ E7
1310
+ ]>, E9 extends Env = IntersectNonAnyTypes<[
1311
+ E,
1312
+ E2,
1313
+ E3,
1314
+ E4,
1315
+ E5,
1316
+ E6,
1317
+ E7,
1318
+ E8
1319
+ ]>>(path: P, ...handlers: [
256
1320
  MiddlewareHandler<E2, P>,
257
1321
  MiddlewareHandler<E3, P>,
258
1322
  MiddlewareHandler<E4, P>,
@@ -261,8 +1325,81 @@ export interface MiddlewareHandlerInterface<E extends Env = Env, S extends Schem
261
1325
  MiddlewareHandler<E7, P>,
262
1326
  MiddlewareHandler<E8, P>,
263
1327
  MiddlewareHandler<E9, P>
264
- ]): HonoBase<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9]>, ChangePathOfSchema<S, MergedPath>, BasePath>;
265
- <E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>, E6 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, E7 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>, E8 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7]>, E9 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8]>, E10 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9]>, E11 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9, E10]>, P extends string = MergePath<BasePath, ExtractStringKey<S>>>(...handlers: [
1328
+ ]): HonoBase<IntersectNonAnyTypes<[
1329
+ E,
1330
+ E2,
1331
+ E3,
1332
+ E4,
1333
+ E5,
1334
+ E6,
1335
+ E7,
1336
+ E8,
1337
+ E9
1338
+ ]>, ChangePathOfSchema<S, MergedPath>, BasePath>;
1339
+ <E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[
1340
+ E,
1341
+ E2
1342
+ ]>, E4 extends Env = IntersectNonAnyTypes<[
1343
+ E,
1344
+ E2,
1345
+ E3
1346
+ ]>, E5 extends Env = IntersectNonAnyTypes<[
1347
+ E,
1348
+ E2,
1349
+ E3,
1350
+ E4
1351
+ ]>, E6 extends Env = IntersectNonAnyTypes<[
1352
+ E,
1353
+ E2,
1354
+ E3,
1355
+ E4,
1356
+ E5
1357
+ ]>, E7 extends Env = IntersectNonAnyTypes<[
1358
+ E,
1359
+ E2,
1360
+ E3,
1361
+ E4,
1362
+ E5,
1363
+ E6
1364
+ ]>, E8 extends Env = IntersectNonAnyTypes<[
1365
+ E,
1366
+ E2,
1367
+ E3,
1368
+ E4,
1369
+ E5,
1370
+ E6,
1371
+ E7
1372
+ ]>, E9 extends Env = IntersectNonAnyTypes<[
1373
+ E,
1374
+ E2,
1375
+ E3,
1376
+ E4,
1377
+ E5,
1378
+ E6,
1379
+ E7,
1380
+ E8
1381
+ ]>, E10 extends Env = IntersectNonAnyTypes<[
1382
+ E,
1383
+ E2,
1384
+ E3,
1385
+ E4,
1386
+ E5,
1387
+ E6,
1388
+ E7,
1389
+ E8,
1390
+ E9
1391
+ ]>, E11 extends Env = IntersectNonAnyTypes<[
1392
+ E,
1393
+ E2,
1394
+ E3,
1395
+ E4,
1396
+ E5,
1397
+ E6,
1398
+ E7,
1399
+ E8,
1400
+ E9,
1401
+ E10
1402
+ ]>, P extends string = MergePath<BasePath, ExtractStringKey<S>>>(...handlers: [
266
1403
  MiddlewareHandler<E2, P>,
267
1404
  MiddlewareHandler<E3, P>,
268
1405
  MiddlewareHandler<E4, P>,
@@ -273,8 +1410,72 @@ export interface MiddlewareHandlerInterface<E extends Env = Env, S extends Schem
273
1410
  MiddlewareHandler<E9, P>,
274
1411
  MiddlewareHandler<E10, P>,
275
1412
  MiddlewareHandler<E11, P>
276
- ]): HonoBase<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9, E10, E11]>, S, BasePath>;
277
- <P extends string, MergedPath extends MergePath<BasePath, P> = MergePath<BasePath, P>, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>, E6 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, E7 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>, E8 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7]>, E9 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8]>, E10 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9]>>(path: P, ...handlers: [
1413
+ ]): HonoBase<IntersectNonAnyTypes<[
1414
+ E,
1415
+ E2,
1416
+ E3,
1417
+ E4,
1418
+ E5,
1419
+ E6,
1420
+ E7,
1421
+ E8,
1422
+ E9,
1423
+ E10,
1424
+ E11
1425
+ ]>, S, BasePath>;
1426
+ <P extends string, MergedPath extends MergePath<BasePath, P> = MergePath<BasePath, P>, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[
1427
+ E,
1428
+ E2
1429
+ ]>, E4 extends Env = IntersectNonAnyTypes<[
1430
+ E,
1431
+ E2,
1432
+ E3
1433
+ ]>, E5 extends Env = IntersectNonAnyTypes<[
1434
+ E,
1435
+ E2,
1436
+ E3,
1437
+ E4
1438
+ ]>, E6 extends Env = IntersectNonAnyTypes<[
1439
+ E,
1440
+ E2,
1441
+ E3,
1442
+ E4,
1443
+ E5
1444
+ ]>, E7 extends Env = IntersectNonAnyTypes<[
1445
+ E,
1446
+ E2,
1447
+ E3,
1448
+ E4,
1449
+ E5,
1450
+ E6
1451
+ ]>, E8 extends Env = IntersectNonAnyTypes<[
1452
+ E,
1453
+ E2,
1454
+ E3,
1455
+ E4,
1456
+ E5,
1457
+ E6,
1458
+ E7
1459
+ ]>, E9 extends Env = IntersectNonAnyTypes<[
1460
+ E,
1461
+ E2,
1462
+ E3,
1463
+ E4,
1464
+ E5,
1465
+ E6,
1466
+ E7,
1467
+ E8
1468
+ ]>, E10 extends Env = IntersectNonAnyTypes<[
1469
+ E,
1470
+ E2,
1471
+ E3,
1472
+ E4,
1473
+ E5,
1474
+ E6,
1475
+ E7,
1476
+ E8,
1477
+ E9
1478
+ ]>>(path: P, ...handlers: [
278
1479
  MiddlewareHandler<E2, P>,
279
1480
  MiddlewareHandler<E3, P>,
280
1481
  MiddlewareHandler<E4, P>,
@@ -284,35 +1485,184 @@ export interface MiddlewareHandlerInterface<E extends Env = Env, S extends Schem
284
1485
  MiddlewareHandler<E8, P>,
285
1486
  MiddlewareHandler<E9, P>,
286
1487
  MiddlewareHandler<E10, P>
287
- ]): HonoBase<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9, E10]>, ChangePathOfSchema<S, MergedPath>, BasePath>;
1488
+ ]): HonoBase<IntersectNonAnyTypes<[
1489
+ E,
1490
+ E2,
1491
+ E3,
1492
+ E4,
1493
+ E5,
1494
+ E6,
1495
+ E7,
1496
+ E8,
1497
+ E9,
1498
+ E10
1499
+ ]>, ChangePathOfSchema<S, MergedPath>, BasePath>;
288
1500
  <P extends string, E2 extends Env = E>(path: P, ...handlers: MiddlewareHandler<E2, MergePath<BasePath, P>>[]): HonoBase<E, S, BasePath>;
289
1501
  }
290
- export interface OnHandlerInterface<E extends Env = Env, S extends Schema = BlankSchema, BasePath extends string = '/'> {
291
- <M extends string, P extends string, MergedPath extends MergePath<BasePath, P> = MergePath<BasePath, P>, R extends HandlerResponse<any> = any, I extends Input = BlankInput, E2 extends Env = E>(method: M, path: P, handler: H<E2, MergedPath, I, R>): HonoBase<IntersectNonAnyTypes<[E, E2]>, S & ToSchema<M, MergePath<BasePath, P>, I, MergeTypedResponse<R>>, BasePath>;
292
- <M extends string, 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]>>(method: M, path: P, ...handlers: [H<E2, MergedPath, I>, H<E3, MergedPath, I2, R>]): HonoBase<IntersectNonAnyTypes<[E, E2, E3]>, S & ToSchema<M, MergePath<BasePath, P>, I2, MergeTypedResponse<R>>, BasePath>;
293
- <M extends string, 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 = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>>(method: M, path: P, ...handlers: [H<E2, MergedPath, I>, H<E3, MergedPath, I2>, H<E4, MergedPath, I3, R>]): HonoBase<IntersectNonAnyTypes<[E, E2, E3, E4]>, S & ToSchema<M, MergePath<BasePath, P>, I3, MergeTypedResponse<R>>, BasePath>;
294
- <M extends string, 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 = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>>(method: M, path: P, ...handlers: [
1502
+ export interface OnHandlerInterface<E extends Env = Env, S extends Schema = BlankSchema, BasePath extends string = "/"> {
1503
+ <M extends string, P extends string, MergedPath extends MergePath<BasePath, P> = MergePath<BasePath, P>, R extends HandlerResponse<any> = any, I extends Input = BlankInput, E2 extends Env = E>(method: M, path: P, handler: H<E2, MergedPath, I, R>): HonoBase<IntersectNonAnyTypes<[
1504
+ E,
1505
+ E2
1506
+ ]>, S & ToSchema<M, MergePath<BasePath, P>, I, MergeTypedResponse<R>>, BasePath>;
1507
+ <M extends string, 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<[
1508
+ E,
1509
+ E2
1510
+ ]>>(method: M, path: P, ...handlers: [
1511
+ H<E2, MergedPath, I>,
1512
+ H<E3, MergedPath, I2, R>
1513
+ ]): HonoBase<IntersectNonAnyTypes<[
1514
+ E,
1515
+ E2,
1516
+ E3
1517
+ ]>, S & ToSchema<M, MergePath<BasePath, P>, I2, MergeTypedResponse<R>>, BasePath>;
1518
+ <M extends string, 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 = IntersectNonAnyTypes<[
1519
+ E,
1520
+ E2
1521
+ ]>, E4 extends Env = IntersectNonAnyTypes<[
1522
+ E,
1523
+ E2,
1524
+ E3
1525
+ ]>>(method: M, path: P, ...handlers: [
1526
+ H<E2, MergedPath, I>,
1527
+ H<E3, MergedPath, I2>,
1528
+ H<E4, MergedPath, I3, R>
1529
+ ]): HonoBase<IntersectNonAnyTypes<[
1530
+ E,
1531
+ E2,
1532
+ E3,
1533
+ E4
1534
+ ]>, S & ToSchema<M, MergePath<BasePath, P>, I3, MergeTypedResponse<R>>, BasePath>;
1535
+ <M extends string, 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 = IntersectNonAnyTypes<[
1536
+ E,
1537
+ E2
1538
+ ]>, E4 extends Env = IntersectNonAnyTypes<[
1539
+ E,
1540
+ E2,
1541
+ E3
1542
+ ]>, E5 extends Env = IntersectNonAnyTypes<[
1543
+ E,
1544
+ E2,
1545
+ E3,
1546
+ E4
1547
+ ]>>(method: M, path: P, ...handlers: [
295
1548
  H<E2, MergedPath, I>,
296
1549
  H<E3, MergedPath, I2>,
297
1550
  H<E4, MergedPath, I3>,
298
1551
  H<E5, MergedPath, I4, R>
299
- ]): HonoBase<IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, S & ToSchema<M, MergePath<BasePath, P>, I4, MergeTypedResponse<R>>, BasePath>;
300
- <M extends string, 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, I5 extends Input = I & I2 & I3 & I4, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>, E6 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5]>>(method: M, path: P, ...handlers: [
1552
+ ]): HonoBase<IntersectNonAnyTypes<[
1553
+ E,
1554
+ E2,
1555
+ E3,
1556
+ E4,
1557
+ E5
1558
+ ]>, S & ToSchema<M, MergePath<BasePath, P>, I4, MergeTypedResponse<R>>, BasePath>;
1559
+ <M extends string, 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, I5 extends Input = I & I2 & I3 & I4, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[
1560
+ E,
1561
+ E2
1562
+ ]>, E4 extends Env = IntersectNonAnyTypes<[
1563
+ E,
1564
+ E2,
1565
+ E3
1566
+ ]>, E5 extends Env = IntersectNonAnyTypes<[
1567
+ E,
1568
+ E2,
1569
+ E3,
1570
+ E4
1571
+ ]>, E6 extends Env = IntersectNonAnyTypes<[
1572
+ E,
1573
+ E2,
1574
+ E3,
1575
+ E4,
1576
+ E5
1577
+ ]>>(method: M, path: P, ...handlers: [
301
1578
  H<E2, MergedPath, I>,
302
1579
  H<E3, MergedPath, I2>,
303
1580
  H<E4, MergedPath, I3>,
304
1581
  H<E5, MergedPath, I4>,
305
1582
  H<E6, MergedPath, I5, R>
306
- ]): HonoBase<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>, S & ToSchema<M, MergePath<BasePath, P>, I5, MergeTypedResponse<R>>, BasePath>;
307
- <M extends string, 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, I5 extends Input = I & I2 & I3 & I4, I6 extends Input = I & I2 & I3 & I4 & I5, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>, E6 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, E7 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>>(method: M, path: P, ...handlers: [
1583
+ ]): HonoBase<IntersectNonAnyTypes<[
1584
+ E,
1585
+ E2,
1586
+ E3,
1587
+ E4,
1588
+ E5,
1589
+ E6
1590
+ ]>, S & ToSchema<M, MergePath<BasePath, P>, I5, MergeTypedResponse<R>>, BasePath>;
1591
+ <M extends string, 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, I5 extends Input = I & I2 & I3 & I4, I6 extends Input = I & I2 & I3 & I4 & I5, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[
1592
+ E,
1593
+ E2
1594
+ ]>, E4 extends Env = IntersectNonAnyTypes<[
1595
+ E,
1596
+ E2,
1597
+ E3
1598
+ ]>, E5 extends Env = IntersectNonAnyTypes<[
1599
+ E,
1600
+ E2,
1601
+ E3,
1602
+ E4
1603
+ ]>, E6 extends Env = IntersectNonAnyTypes<[
1604
+ E,
1605
+ E2,
1606
+ E3,
1607
+ E4,
1608
+ E5
1609
+ ]>, E7 extends Env = IntersectNonAnyTypes<[
1610
+ E,
1611
+ E2,
1612
+ E3,
1613
+ E4,
1614
+ E5,
1615
+ E6
1616
+ ]>>(method: M, path: P, ...handlers: [
308
1617
  H<E2, MergedPath, I>,
309
1618
  H<E3, MergedPath, I2>,
310
1619
  H<E4, MergedPath, I3>,
311
1620
  H<E5, MergedPath, I4>,
312
1621
  H<E6, MergedPath, I5>,
313
1622
  H<E7, MergedPath, I6, R>
314
- ]): HonoBase<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7]>, S & ToSchema<M, MergePath<BasePath, P>, I6, MergeTypedResponse<R>>, BasePath>;
315
- <M extends string, 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, 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 = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>, E6 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, E7 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>, E8 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7]>>(method: M, path: P, ...handlers: [
1623
+ ]): HonoBase<IntersectNonAnyTypes<[
1624
+ E,
1625
+ E2,
1626
+ E3,
1627
+ E4,
1628
+ E5,
1629
+ E6,
1630
+ E7
1631
+ ]>, S & ToSchema<M, MergePath<BasePath, P>, I6, MergeTypedResponse<R>>, BasePath>;
1632
+ <M extends string, 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, 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 = IntersectNonAnyTypes<[
1633
+ E,
1634
+ E2
1635
+ ]>, E4 extends Env = IntersectNonAnyTypes<[
1636
+ E,
1637
+ E2,
1638
+ E3
1639
+ ]>, E5 extends Env = IntersectNonAnyTypes<[
1640
+ E,
1641
+ E2,
1642
+ E3,
1643
+ E4
1644
+ ]>, E6 extends Env = IntersectNonAnyTypes<[
1645
+ E,
1646
+ E2,
1647
+ E3,
1648
+ E4,
1649
+ E5
1650
+ ]>, E7 extends Env = IntersectNonAnyTypes<[
1651
+ E,
1652
+ E2,
1653
+ E3,
1654
+ E4,
1655
+ E5,
1656
+ E6
1657
+ ]>, E8 extends Env = IntersectNonAnyTypes<[
1658
+ E,
1659
+ E2,
1660
+ E3,
1661
+ E4,
1662
+ E5,
1663
+ E6,
1664
+ E7
1665
+ ]>>(method: M, path: P, ...handlers: [
316
1666
  H<E2, MergedPath, I>,
317
1667
  H<E3, MergedPath, I2>,
318
1668
  H<E4, MergedPath, I3>,
@@ -320,8 +1670,59 @@ export interface OnHandlerInterface<E extends Env = Env, S extends Schema = Blan
320
1670
  H<E6, MergedPath, I5>,
321
1671
  H<E7, MergedPath, I6>,
322
1672
  H<E8, MergedPath, I7, R>
323
- ]): HonoBase<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8]>, S & ToSchema<M, MergePath<BasePath, P>, I7, MergeTypedResponse<R>>, BasePath>;
324
- <M extends string, 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, 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 = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>, E6 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, E7 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>, E8 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7]>, E9 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8]>>(method: M, path: P, ...handlers: [
1673
+ ]): HonoBase<IntersectNonAnyTypes<[
1674
+ E,
1675
+ E2,
1676
+ E3,
1677
+ E4,
1678
+ E5,
1679
+ E6,
1680
+ E7,
1681
+ E8
1682
+ ]>, S & ToSchema<M, MergePath<BasePath, P>, I7, MergeTypedResponse<R>>, BasePath>;
1683
+ <M extends string, 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, 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 = IntersectNonAnyTypes<[
1684
+ E,
1685
+ E2
1686
+ ]>, E4 extends Env = IntersectNonAnyTypes<[
1687
+ E,
1688
+ E2,
1689
+ E3
1690
+ ]>, E5 extends Env = IntersectNonAnyTypes<[
1691
+ E,
1692
+ E2,
1693
+ E3,
1694
+ E4
1695
+ ]>, E6 extends Env = IntersectNonAnyTypes<[
1696
+ E,
1697
+ E2,
1698
+ E3,
1699
+ E4,
1700
+ E5
1701
+ ]>, E7 extends Env = IntersectNonAnyTypes<[
1702
+ E,
1703
+ E2,
1704
+ E3,
1705
+ E4,
1706
+ E5,
1707
+ E6
1708
+ ]>, E8 extends Env = IntersectNonAnyTypes<[
1709
+ E,
1710
+ E2,
1711
+ E3,
1712
+ E4,
1713
+ E5,
1714
+ E6,
1715
+ E7
1716
+ ]>, E9 extends Env = IntersectNonAnyTypes<[
1717
+ E,
1718
+ E2,
1719
+ E3,
1720
+ E4,
1721
+ E5,
1722
+ E6,
1723
+ E7,
1724
+ E8
1725
+ ]>>(method: M, path: P, ...handlers: [
325
1726
  H<E2, MergedPath, I>,
326
1727
  H<E3, MergedPath, I2>,
327
1728
  H<E4, MergedPath, I3>,
@@ -330,8 +1731,70 @@ export interface OnHandlerInterface<E extends Env = Env, S extends Schema = Blan
330
1731
  H<E7, MergedPath, I6>,
331
1732
  H<E8, MergedPath, I7>,
332
1733
  H<E9, MergedPath, I8, R>
333
- ]): HonoBase<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9]>, S & ToSchema<M, MergePath<BasePath, P>, I8, MergeTypedResponse<R>>, BasePath>;
334
- <M extends string, 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, 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 = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>, E6 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, E7 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>, E8 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7]>, E9 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8]>, E10 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9]>>(method: M, path: P, ...handlers: [
1734
+ ]): HonoBase<IntersectNonAnyTypes<[
1735
+ E,
1736
+ E2,
1737
+ E3,
1738
+ E4,
1739
+ E5,
1740
+ E6,
1741
+ E7,
1742
+ E8,
1743
+ E9
1744
+ ]>, S & ToSchema<M, MergePath<BasePath, P>, I8, MergeTypedResponse<R>>, BasePath>;
1745
+ <M extends string, 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, 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 = IntersectNonAnyTypes<[
1746
+ E,
1747
+ E2
1748
+ ]>, E4 extends Env = IntersectNonAnyTypes<[
1749
+ E,
1750
+ E2,
1751
+ E3
1752
+ ]>, E5 extends Env = IntersectNonAnyTypes<[
1753
+ E,
1754
+ E2,
1755
+ E3,
1756
+ E4
1757
+ ]>, E6 extends Env = IntersectNonAnyTypes<[
1758
+ E,
1759
+ E2,
1760
+ E3,
1761
+ E4,
1762
+ E5
1763
+ ]>, E7 extends Env = IntersectNonAnyTypes<[
1764
+ E,
1765
+ E2,
1766
+ E3,
1767
+ E4,
1768
+ E5,
1769
+ E6
1770
+ ]>, E8 extends Env = IntersectNonAnyTypes<[
1771
+ E,
1772
+ E2,
1773
+ E3,
1774
+ E4,
1775
+ E5,
1776
+ E6,
1777
+ E7
1778
+ ]>, E9 extends Env = IntersectNonAnyTypes<[
1779
+ E,
1780
+ E2,
1781
+ E3,
1782
+ E4,
1783
+ E5,
1784
+ E6,
1785
+ E7,
1786
+ E8
1787
+ ]>, E10 extends Env = IntersectNonAnyTypes<[
1788
+ E,
1789
+ E2,
1790
+ E3,
1791
+ E4,
1792
+ E5,
1793
+ E6,
1794
+ E7,
1795
+ E8,
1796
+ E9
1797
+ ]>>(method: M, path: P, ...handlers: [
335
1798
  H<E2, MergedPath, I>,
336
1799
  H<E3, MergedPath, I2>,
337
1800
  H<E4, MergedPath, I3>,
@@ -341,8 +1804,82 @@ export interface OnHandlerInterface<E extends Env = Env, S extends Schema = Blan
341
1804
  H<E8, MergedPath, I7>,
342
1805
  H<E9, MergedPath, I8>,
343
1806
  H<E10, MergedPath, I9, R>
344
- ]): HonoBase<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9, E10]>, S & ToSchema<M, MergePath<BasePath, P>, I9, MergeTypedResponse<R>>, BasePath>;
345
- <M extends string, 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, 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 = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>, E6 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, E7 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>, E8 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7]>, E9 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8]>, E10 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9]>, E11 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9, E10]>>(method: M, path: P, ...handlers: [
1807
+ ]): HonoBase<IntersectNonAnyTypes<[
1808
+ E,
1809
+ E2,
1810
+ E3,
1811
+ E4,
1812
+ E5,
1813
+ E6,
1814
+ E7,
1815
+ E8,
1816
+ E9,
1817
+ E10
1818
+ ]>, S & ToSchema<M, MergePath<BasePath, P>, I9, MergeTypedResponse<R>>, BasePath>;
1819
+ <M extends string, 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, 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 = IntersectNonAnyTypes<[
1820
+ E,
1821
+ E2
1822
+ ]>, E4 extends Env = IntersectNonAnyTypes<[
1823
+ E,
1824
+ E2,
1825
+ E3
1826
+ ]>, E5 extends Env = IntersectNonAnyTypes<[
1827
+ E,
1828
+ E2,
1829
+ E3,
1830
+ E4
1831
+ ]>, E6 extends Env = IntersectNonAnyTypes<[
1832
+ E,
1833
+ E2,
1834
+ E3,
1835
+ E4,
1836
+ E5
1837
+ ]>, E7 extends Env = IntersectNonAnyTypes<[
1838
+ E,
1839
+ E2,
1840
+ E3,
1841
+ E4,
1842
+ E5,
1843
+ E6
1844
+ ]>, E8 extends Env = IntersectNonAnyTypes<[
1845
+ E,
1846
+ E2,
1847
+ E3,
1848
+ E4,
1849
+ E5,
1850
+ E6,
1851
+ E7
1852
+ ]>, E9 extends Env = IntersectNonAnyTypes<[
1853
+ E,
1854
+ E2,
1855
+ E3,
1856
+ E4,
1857
+ E5,
1858
+ E6,
1859
+ E7,
1860
+ E8
1861
+ ]>, E10 extends Env = IntersectNonAnyTypes<[
1862
+ E,
1863
+ E2,
1864
+ E3,
1865
+ E4,
1866
+ E5,
1867
+ E6,
1868
+ E7,
1869
+ E8,
1870
+ E9
1871
+ ]>, E11 extends Env = IntersectNonAnyTypes<[
1872
+ E,
1873
+ E2,
1874
+ E3,
1875
+ E4,
1876
+ E5,
1877
+ E6,
1878
+ E7,
1879
+ E8,
1880
+ E9,
1881
+ E10
1882
+ ]>>(method: M, path: P, ...handlers: [
346
1883
  H<E2, MergedPath, I>,
347
1884
  H<E3, MergedPath, I2>,
348
1885
  H<E4, MergedPath, I3>,
@@ -353,33 +1890,183 @@ export interface OnHandlerInterface<E extends Env = Env, S extends Schema = Blan
353
1890
  H<E9, MergedPath, I8>,
354
1891
  H<E10, MergedPath, I9>,
355
1892
  H<E11, MergedPath, I10, R>
356
- ]): HonoBase<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9, E10, E11]>, S & ToSchema<M, MergePath<BasePath, P>, I10, MergeTypedResponse<HandlerResponse<any>>>, BasePath>;
1893
+ ]): HonoBase<IntersectNonAnyTypes<[
1894
+ E,
1895
+ E2,
1896
+ E3,
1897
+ E4,
1898
+ E5,
1899
+ E6,
1900
+ E7,
1901
+ E8,
1902
+ E9,
1903
+ E10,
1904
+ E11
1905
+ ]>, S & ToSchema<M, MergePath<BasePath, P>, I10, MergeTypedResponse<HandlerResponse<any>>>, BasePath>;
357
1906
  <M extends string, P extends string, R extends HandlerResponse<any> = any, I extends Input = BlankInput>(method: M, path: P, ...handlers: H<E, MergePath<BasePath, P>, I, R>[]): HonoBase<E, S & ToSchema<M, MergePath<BasePath, P>, I, MergeTypedResponse<R>>, BasePath>;
358
- <Ms extends string[], P extends string, MergedPath extends MergePath<BasePath, P> = MergePath<BasePath, P>, R extends HandlerResponse<any> = any, I extends Input = BlankInput, E2 extends Env = E>(methods: Ms, path: P, handler: H<E2, MergedPath, I, R>): HonoBase<IntersectNonAnyTypes<[E, E2]>, S & ToSchema<Ms[number], MergePath<BasePath, P>, I, MergeTypedResponse<R>>, BasePath>;
359
- <Ms extends string[], 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]>>(methods: Ms, path: P, ...handlers: [H<E2, MergedPath, I>, H<E3, MergedPath, I2, R>]): HonoBase<IntersectNonAnyTypes<[E, E2, E3]>, S & ToSchema<Ms[number], MergePath<BasePath, P>, I2, MergeTypedResponse<R>>, BasePath>;
360
- <Ms extends string[], 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 = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>>(methods: Ms, path: P, ...handlers: [H<E2, MergedPath, I>, H<E3, MergedPath, I2>, H<E4, MergedPath, I3, R>]): HonoBase<IntersectNonAnyTypes<[E, E2, E3, E4]>, S & ToSchema<Ms[number], MergePath<BasePath, P>, I3, MergeTypedResponse<R>>, BasePath>;
361
- <Ms extends string[], 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 = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>>(methods: Ms, path: P, ...handlers: [
1907
+ <Ms extends string[], P extends string, MergedPath extends MergePath<BasePath, P> = MergePath<BasePath, P>, R extends HandlerResponse<any> = any, I extends Input = BlankInput, E2 extends Env = E>(methods: Ms, path: P, handler: H<E2, MergedPath, I, R>): HonoBase<IntersectNonAnyTypes<[
1908
+ E,
1909
+ E2
1910
+ ]>, S & ToSchema<Ms[number], MergePath<BasePath, P>, I, MergeTypedResponse<R>>, BasePath>;
1911
+ <Ms extends string[], 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<[
1912
+ E,
1913
+ E2
1914
+ ]>>(methods: Ms, path: P, ...handlers: [
1915
+ H<E2, MergedPath, I>,
1916
+ H<E3, MergedPath, I2, R>
1917
+ ]): HonoBase<IntersectNonAnyTypes<[
1918
+ E,
1919
+ E2,
1920
+ E3
1921
+ ]>, S & ToSchema<Ms[number], MergePath<BasePath, P>, I2, MergeTypedResponse<R>>, BasePath>;
1922
+ <Ms extends string[], 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 = IntersectNonAnyTypes<[
1923
+ E,
1924
+ E2
1925
+ ]>, E4 extends Env = IntersectNonAnyTypes<[
1926
+ E,
1927
+ E2,
1928
+ E3
1929
+ ]>>(methods: Ms, path: P, ...handlers: [
1930
+ H<E2, MergedPath, I>,
1931
+ H<E3, MergedPath, I2>,
1932
+ H<E4, MergedPath, I3, R>
1933
+ ]): HonoBase<IntersectNonAnyTypes<[
1934
+ E,
1935
+ E2,
1936
+ E3,
1937
+ E4
1938
+ ]>, S & ToSchema<Ms[number], MergePath<BasePath, P>, I3, MergeTypedResponse<R>>, BasePath>;
1939
+ <Ms extends string[], 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 = IntersectNonAnyTypes<[
1940
+ E,
1941
+ E2
1942
+ ]>, E4 extends Env = IntersectNonAnyTypes<[
1943
+ E,
1944
+ E2,
1945
+ E3
1946
+ ]>, E5 extends Env = IntersectNonAnyTypes<[
1947
+ E,
1948
+ E2,
1949
+ E3,
1950
+ E4
1951
+ ]>>(methods: Ms, path: P, ...handlers: [
362
1952
  H<E2, MergedPath, I>,
363
1953
  H<E3, MergedPath, I2>,
364
1954
  H<E4, MergedPath, I3>,
365
1955
  H<E5, MergedPath, I4, R>
366
- ]): HonoBase<IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, S & ToSchema<Ms[number], MergePath<BasePath, P>, I4, MergeTypedResponse<R>>, BasePath>;
367
- <Ms extends string[], 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, I5 extends Input = I & I2 & I3 & I4, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>, E6 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5]>>(methods: Ms, path: P, ...handlers: [
1956
+ ]): HonoBase<IntersectNonAnyTypes<[
1957
+ E,
1958
+ E2,
1959
+ E3,
1960
+ E4,
1961
+ E5
1962
+ ]>, S & ToSchema<Ms[number], MergePath<BasePath, P>, I4, MergeTypedResponse<R>>, BasePath>;
1963
+ <Ms extends string[], 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, I5 extends Input = I & I2 & I3 & I4, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[
1964
+ E,
1965
+ E2
1966
+ ]>, E4 extends Env = IntersectNonAnyTypes<[
1967
+ E,
1968
+ E2,
1969
+ E3
1970
+ ]>, E5 extends Env = IntersectNonAnyTypes<[
1971
+ E,
1972
+ E2,
1973
+ E3,
1974
+ E4
1975
+ ]>, E6 extends Env = IntersectNonAnyTypes<[
1976
+ E,
1977
+ E2,
1978
+ E3,
1979
+ E4,
1980
+ E5
1981
+ ]>>(methods: Ms, path: P, ...handlers: [
368
1982
  H<E2, MergedPath, I>,
369
1983
  H<E3, MergedPath, I2>,
370
1984
  H<E4, MergedPath, I3>,
371
1985
  H<E5, MergedPath, I4>,
372
1986
  H<E6, MergedPath, I5, R>
373
- ]): HonoBase<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>, S & ToSchema<Ms[number], MergePath<BasePath, P>, I5, MergeTypedResponse<R>>, BasePath>;
374
- <Ms extends string[], 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, I5 extends Input = I & I2 & I3 & I4, I6 extends Input = I & I2 & I3 & I4 & I5, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>, E6 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, E7 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>>(methods: Ms, path: P, ...handlers: [
1987
+ ]): HonoBase<IntersectNonAnyTypes<[
1988
+ E,
1989
+ E2,
1990
+ E3,
1991
+ E4,
1992
+ E5,
1993
+ E6
1994
+ ]>, S & ToSchema<Ms[number], MergePath<BasePath, P>, I5, MergeTypedResponse<R>>, BasePath>;
1995
+ <Ms extends string[], 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, I5 extends Input = I & I2 & I3 & I4, I6 extends Input = I & I2 & I3 & I4 & I5, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[
1996
+ E,
1997
+ E2
1998
+ ]>, E4 extends Env = IntersectNonAnyTypes<[
1999
+ E,
2000
+ E2,
2001
+ E3
2002
+ ]>, E5 extends Env = IntersectNonAnyTypes<[
2003
+ E,
2004
+ E2,
2005
+ E3,
2006
+ E4
2007
+ ]>, E6 extends Env = IntersectNonAnyTypes<[
2008
+ E,
2009
+ E2,
2010
+ E3,
2011
+ E4,
2012
+ E5
2013
+ ]>, E7 extends Env = IntersectNonAnyTypes<[
2014
+ E,
2015
+ E2,
2016
+ E3,
2017
+ E4,
2018
+ E5,
2019
+ E6
2020
+ ]>>(methods: Ms, path: P, ...handlers: [
375
2021
  H<E2, MergedPath, I>,
376
2022
  H<E3, MergedPath, I2>,
377
2023
  H<E4, MergedPath, I3>,
378
2024
  H<E5, MergedPath, I4>,
379
2025
  H<E6, MergedPath, I5>,
380
2026
  H<E7, MergedPath, I6, R>
381
- ]): HonoBase<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7]>, S & ToSchema<Ms[number], MergePath<BasePath, P>, I6, MergeTypedResponse<R>>, BasePath>;
382
- <Ms extends string[], 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, 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 = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>, E6 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, E7 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>, E8 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7]>>(methods: Ms, path: P, ...handlers: [
2027
+ ]): HonoBase<IntersectNonAnyTypes<[
2028
+ E,
2029
+ E2,
2030
+ E3,
2031
+ E4,
2032
+ E5,
2033
+ E6,
2034
+ E7
2035
+ ]>, S & ToSchema<Ms[number], MergePath<BasePath, P>, I6, MergeTypedResponse<R>>, BasePath>;
2036
+ <Ms extends string[], 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, 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 = IntersectNonAnyTypes<[
2037
+ E,
2038
+ E2
2039
+ ]>, E4 extends Env = IntersectNonAnyTypes<[
2040
+ E,
2041
+ E2,
2042
+ E3
2043
+ ]>, E5 extends Env = IntersectNonAnyTypes<[
2044
+ E,
2045
+ E2,
2046
+ E3,
2047
+ E4
2048
+ ]>, E6 extends Env = IntersectNonAnyTypes<[
2049
+ E,
2050
+ E2,
2051
+ E3,
2052
+ E4,
2053
+ E5
2054
+ ]>, E7 extends Env = IntersectNonAnyTypes<[
2055
+ E,
2056
+ E2,
2057
+ E3,
2058
+ E4,
2059
+ E5,
2060
+ E6
2061
+ ]>, E8 extends Env = IntersectNonAnyTypes<[
2062
+ E,
2063
+ E2,
2064
+ E3,
2065
+ E4,
2066
+ E5,
2067
+ E6,
2068
+ E7
2069
+ ]>>(methods: Ms, path: P, ...handlers: [
383
2070
  H<E2, MergedPath, I>,
384
2071
  H<E3, MergedPath, I2>,
385
2072
  H<E4, MergedPath, I3>,
@@ -387,8 +2074,59 @@ export interface OnHandlerInterface<E extends Env = Env, S extends Schema = Blan
387
2074
  H<E6, MergedPath, I5>,
388
2075
  H<E7, MergedPath, I6>,
389
2076
  H<E8, MergedPath, I7, R>
390
- ]): HonoBase<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8]>, S & ToSchema<Ms[number], MergePath<BasePath, P>, I7, MergeTypedResponse<R>>, BasePath>;
391
- <Ms extends string[], 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, 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 = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>, E6 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, E7 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>, E8 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7]>, E9 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8]>>(methods: Ms, path: P, ...handlers: [
2077
+ ]): HonoBase<IntersectNonAnyTypes<[
2078
+ E,
2079
+ E2,
2080
+ E3,
2081
+ E4,
2082
+ E5,
2083
+ E6,
2084
+ E7,
2085
+ E8
2086
+ ]>, S & ToSchema<Ms[number], MergePath<BasePath, P>, I7, MergeTypedResponse<R>>, BasePath>;
2087
+ <Ms extends string[], 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, 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 = IntersectNonAnyTypes<[
2088
+ E,
2089
+ E2
2090
+ ]>, E4 extends Env = IntersectNonAnyTypes<[
2091
+ E,
2092
+ E2,
2093
+ E3
2094
+ ]>, E5 extends Env = IntersectNonAnyTypes<[
2095
+ E,
2096
+ E2,
2097
+ E3,
2098
+ E4
2099
+ ]>, E6 extends Env = IntersectNonAnyTypes<[
2100
+ E,
2101
+ E2,
2102
+ E3,
2103
+ E4,
2104
+ E5
2105
+ ]>, E7 extends Env = IntersectNonAnyTypes<[
2106
+ E,
2107
+ E2,
2108
+ E3,
2109
+ E4,
2110
+ E5,
2111
+ E6
2112
+ ]>, E8 extends Env = IntersectNonAnyTypes<[
2113
+ E,
2114
+ E2,
2115
+ E3,
2116
+ E4,
2117
+ E5,
2118
+ E6,
2119
+ E7
2120
+ ]>, E9 extends Env = IntersectNonAnyTypes<[
2121
+ E,
2122
+ E2,
2123
+ E3,
2124
+ E4,
2125
+ E5,
2126
+ E6,
2127
+ E7,
2128
+ E8
2129
+ ]>>(methods: Ms, path: P, ...handlers: [
392
2130
  H<E2, MergedPath, I>,
393
2131
  H<E3, MergedPath, I2>,
394
2132
  H<E4, MergedPath, I3>,
@@ -397,8 +2135,70 @@ export interface OnHandlerInterface<E extends Env = Env, S extends Schema = Blan
397
2135
  H<E7, MergedPath, I6>,
398
2136
  H<E8, MergedPath, I7>,
399
2137
  H<E9, MergedPath, I8, R>
400
- ]): HonoBase<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9]>, S & ToSchema<Ms[number], MergePath<BasePath, P>, I8, MergeTypedResponse<R>>, BasePath>;
401
- <Ms extends string[], 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, 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 = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>, E6 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, E7 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>, E8 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7]>, E9 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8]>, E10 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9]>>(methods: Ms, path: P, ...handlers: [
2138
+ ]): HonoBase<IntersectNonAnyTypes<[
2139
+ E,
2140
+ E2,
2141
+ E3,
2142
+ E4,
2143
+ E5,
2144
+ E6,
2145
+ E7,
2146
+ E8,
2147
+ E9
2148
+ ]>, S & ToSchema<Ms[number], MergePath<BasePath, P>, I8, MergeTypedResponse<R>>, BasePath>;
2149
+ <Ms extends string[], 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, 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 = IntersectNonAnyTypes<[
2150
+ E,
2151
+ E2
2152
+ ]>, E4 extends Env = IntersectNonAnyTypes<[
2153
+ E,
2154
+ E2,
2155
+ E3
2156
+ ]>, E5 extends Env = IntersectNonAnyTypes<[
2157
+ E,
2158
+ E2,
2159
+ E3,
2160
+ E4
2161
+ ]>, E6 extends Env = IntersectNonAnyTypes<[
2162
+ E,
2163
+ E2,
2164
+ E3,
2165
+ E4,
2166
+ E5
2167
+ ]>, E7 extends Env = IntersectNonAnyTypes<[
2168
+ E,
2169
+ E2,
2170
+ E3,
2171
+ E4,
2172
+ E5,
2173
+ E6
2174
+ ]>, E8 extends Env = IntersectNonAnyTypes<[
2175
+ E,
2176
+ E2,
2177
+ E3,
2178
+ E4,
2179
+ E5,
2180
+ E6,
2181
+ E7
2182
+ ]>, E9 extends Env = IntersectNonAnyTypes<[
2183
+ E,
2184
+ E2,
2185
+ E3,
2186
+ E4,
2187
+ E5,
2188
+ E6,
2189
+ E7,
2190
+ E8
2191
+ ]>, E10 extends Env = IntersectNonAnyTypes<[
2192
+ E,
2193
+ E2,
2194
+ E3,
2195
+ E4,
2196
+ E5,
2197
+ E6,
2198
+ E7,
2199
+ E8,
2200
+ E9
2201
+ ]>>(methods: Ms, path: P, ...handlers: [
402
2202
  H<E2, MergedPath, I>,
403
2203
  H<E3, MergedPath, I2>,
404
2204
  H<E4, MergedPath, I3>,
@@ -408,8 +2208,82 @@ export interface OnHandlerInterface<E extends Env = Env, S extends Schema = Blan
408
2208
  H<E8, MergedPath, I7>,
409
2209
  H<E9, MergedPath, I8>,
410
2210
  H<E10, MergedPath, I9, R>
411
- ]): HonoBase<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9, E10]>, S & ToSchema<Ms[number], MergePath<BasePath, P>, I9, MergeTypedResponse<HandlerResponse<any>>>, BasePath>;
412
- <Ms extends string[], 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, 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 = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>, E6 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, E7 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>, E8 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7]>, E9 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8]>, E10 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9]>, E11 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9, E10]>>(methods: Ms, path: P, ...handlers: [
2211
+ ]): HonoBase<IntersectNonAnyTypes<[
2212
+ E,
2213
+ E2,
2214
+ E3,
2215
+ E4,
2216
+ E5,
2217
+ E6,
2218
+ E7,
2219
+ E8,
2220
+ E9,
2221
+ E10
2222
+ ]>, S & ToSchema<Ms[number], MergePath<BasePath, P>, I9, MergeTypedResponse<HandlerResponse<any>>>, BasePath>;
2223
+ <Ms extends string[], 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, 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 = IntersectNonAnyTypes<[
2224
+ E,
2225
+ E2
2226
+ ]>, E4 extends Env = IntersectNonAnyTypes<[
2227
+ E,
2228
+ E2,
2229
+ E3
2230
+ ]>, E5 extends Env = IntersectNonAnyTypes<[
2231
+ E,
2232
+ E2,
2233
+ E3,
2234
+ E4
2235
+ ]>, E6 extends Env = IntersectNonAnyTypes<[
2236
+ E,
2237
+ E2,
2238
+ E3,
2239
+ E4,
2240
+ E5
2241
+ ]>, E7 extends Env = IntersectNonAnyTypes<[
2242
+ E,
2243
+ E2,
2244
+ E3,
2245
+ E4,
2246
+ E5,
2247
+ E6
2248
+ ]>, E8 extends Env = IntersectNonAnyTypes<[
2249
+ E,
2250
+ E2,
2251
+ E3,
2252
+ E4,
2253
+ E5,
2254
+ E6,
2255
+ E7
2256
+ ]>, E9 extends Env = IntersectNonAnyTypes<[
2257
+ E,
2258
+ E2,
2259
+ E3,
2260
+ E4,
2261
+ E5,
2262
+ E6,
2263
+ E7,
2264
+ E8
2265
+ ]>, E10 extends Env = IntersectNonAnyTypes<[
2266
+ E,
2267
+ E2,
2268
+ E3,
2269
+ E4,
2270
+ E5,
2271
+ E6,
2272
+ E7,
2273
+ E8,
2274
+ E9
2275
+ ]>, E11 extends Env = IntersectNonAnyTypes<[
2276
+ E,
2277
+ E2,
2278
+ E3,
2279
+ E4,
2280
+ E5,
2281
+ E6,
2282
+ E7,
2283
+ E8,
2284
+ E9,
2285
+ E10
2286
+ ]>>(methods: Ms, path: P, ...handlers: [
413
2287
  H<E2, MergedPath, I>,
414
2288
  H<E3, MergedPath, I2>,
415
2289
  H<E4, MergedPath, I3>,
@@ -420,12 +2294,24 @@ export interface OnHandlerInterface<E extends Env = Env, S extends Schema = Blan
420
2294
  H<E9, MergedPath, I8>,
421
2295
  H<E10, MergedPath, I9>,
422
2296
  H<E11, MergedPath, I10, R>
423
- ]): HonoBase<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9, E10, E11]>, S & ToSchema<Ms[number], MergePath<BasePath, P>, I10, MergeTypedResponse<HandlerResponse<any>>>, BasePath>;
2297
+ ]): HonoBase<IntersectNonAnyTypes<[
2298
+ E,
2299
+ E2,
2300
+ E3,
2301
+ E4,
2302
+ E5,
2303
+ E6,
2304
+ E7,
2305
+ E8,
2306
+ E9,
2307
+ E10,
2308
+ E11
2309
+ ]>, S & ToSchema<Ms[number], MergePath<BasePath, P>, I10, MergeTypedResponse<HandlerResponse<any>>>, BasePath>;
424
2310
  <P extends string, R extends HandlerResponse<any> = any, I extends Input = BlankInput>(methods: string[], path: P, ...handlers: H<E, MergePath<BasePath, P>, I, R>[]): HonoBase<E, S & ToSchema<string, MergePath<BasePath, P>, I, MergeTypedResponse<R>>, BasePath>;
425
2311
  <I extends Input = BlankInput, R extends HandlerResponse<any> = any, E2 extends Env = E>(methods: string | string[], paths: string[], ...handlers: H<E2, any, I, R>[]): HonoBase<E, S & ToSchema<string, string, I, MergeTypedResponse<R>>, BasePath>;
426
2312
  }
427
2313
  type ExtractStringKey<S> = keyof S & string;
428
- export type ToSchema<M extends string, P extends string, I extends Input | Input['in'], RorO> = Simplify<{
2314
+ export type ToSchema<M extends string, P extends string, I extends Input | Input["in"], RorO> = Simplify<{
429
2315
  [K in P]: {
430
2316
  [K2 in M as AddDollar<K2>]: Simplify<{
431
2317
  input: AddParam<ExtractInput<I>, P>;
@@ -437,13 +2323,13 @@ export type ToSchema<M extends string, P extends string, I extends Input | Input
437
2323
  output: unknown extends T ? {} : T;
438
2324
  outputFormat: I extends {
439
2325
  outputFormat: string;
440
- } ? I['outputFormat'] : F;
2326
+ } ? I["outputFormat"] : F;
441
2327
  status: U;
442
2328
  } : {
443
2329
  output: unknown extends RorO ? {} : RorO;
444
- outputFormat: unknown extends RorO ? 'json' : I extends {
2330
+ outputFormat: unknown extends RorO ? "json" : I extends {
445
2331
  outputFormat: string;
446
- } ? I['outputFormat'] : 'json';
2332
+ } ? I["outputFormat"] : "json";
447
2333
  status: StatusCode;
448
2334
  })>;
449
2335
  };
@@ -473,27 +2359,29 @@ type FlattenIfIntersect<T> = T extends infer O ? {
473
2359
  [K in keyof O]: O[K];
474
2360
  } : never;
475
2361
  export type MergeSchemaPath<OrigSchema extends Schema, SubPath extends string> = {
476
- [P in keyof OrigSchema as MergePath<SubPath, P & string>]: [OrigSchema[P]] extends [
2362
+ [P in keyof OrigSchema as MergePath<SubPath, P & string>]: [
2363
+ OrigSchema[P]
2364
+ ] extends [
477
2365
  Record<string, Endpoint>
478
2366
  ] ? {
479
2367
  [M in keyof OrigSchema[P]]: MergeEndpointParamsWithPath<OrigSchema[P][M], SubPath>;
480
2368
  } : never;
481
2369
  };
482
2370
  type MergeEndpointParamsWithPath<T extends Endpoint, SubPath extends string> = T extends unknown ? {
483
- input: T['input'] extends {
2371
+ input: T["input"] extends {
484
2372
  param: infer _;
485
- } ? ExtractParams<SubPath> extends never ? T['input'] : FlattenIfIntersect<T['input'] & {
2373
+ } ? ExtractParams<SubPath> extends never ? T["input"] : FlattenIfIntersect<T["input"] & {
486
2374
  param: {
487
2375
  [K in keyof ExtractParams<SubPath> as K extends `${infer Prefix}{${infer _}}` ? Prefix : K]: string;
488
2376
  };
489
- }> : RemoveBlankRecord<ExtractParams<SubPath>> extends never ? T['input'] : T['input'] & {
2377
+ }> : RemoveBlankRecord<ExtractParams<SubPath>> extends never ? T["input"] : T["input"] & {
490
2378
  param: {
491
2379
  [K in keyof ExtractParams<SubPath> as K extends `${infer Prefix}{${infer _}}` ? Prefix : K]: string;
492
2380
  };
493
2381
  };
494
- output: T['output'];
495
- outputFormat: T['outputFormat'];
496
- status: T['status'];
2382
+ output: T["output"];
2383
+ outputFormat: T["outputFormat"];
2384
+ status: T["status"];
497
2385
  } : never;
498
2386
  export type AddParam<I, P extends string> = ParamKeys<P> extends never ? I : I extends {
499
2387
  param: infer _;
@@ -501,10 +2389,10 @@ export type AddParam<I, P extends string> = ParamKeys<P> extends never ? I : I e
501
2389
  param: UnionToIntersection<ParamKeyToRecord<ParamKeys<P>>>;
502
2390
  };
503
2391
  type AddDollar<T extends string> = `$${Lowercase<T>}`;
504
- export type MergePath<A extends string, B extends string> = B extends '' ? MergePath<A, '/'> : A extends '' ? B : A extends '/' ? B : A extends `${infer P}/` ? B extends `/${infer Q}` ? `${P}/${Q}` : `${P}/${B}` : B extends `/${infer Q}` ? Q extends '' ? A : `${A}/${Q}` : `${A}/${B}`;
505
- export type KnownResponseFormat = 'json' | 'text' | 'redirect';
2392
+ export type MergePath<A extends string, B extends string> = B extends "" ? MergePath<A, "/"> : A extends "" ? B : A extends "/" ? B : A extends `${infer P}/` ? B extends `/${infer Q}` ? `${P}/${Q}` : `${P}/${B}` : B extends `/${infer Q}` ? Q extends "" ? A : `${A}/${Q}` : `${A}/${B}`;
2393
+ export type KnownResponseFormat = "json" | "text" | "redirect";
506
2394
  export type ResponseFormat = KnownResponseFormat | string;
507
- export type TypedResponse<T = unknown, U extends StatusCode = StatusCode, F extends ResponseFormat = T extends string ? 'text' : T extends JSONValue ? 'json' : ResponseFormat> = {
2395
+ export type TypedResponse<T = unknown, U extends StatusCode = StatusCode, F extends ResponseFormat = T extends string ? "text" : T extends JSONValue ? "json" : ResponseFormat> = {
508
2396
  _data: T;
509
2397
  _status: U;
510
2398
  _format: F;
@@ -525,13 +2413,16 @@ export type ParamKeys<Path> = Path extends `${infer Component}/${infer Rest}` ?
525
2413
  export type ParamKeyToRecord<T extends string> = T extends `${infer R}?` ? Record<R, string | undefined> : {
526
2414
  [K in T]: string;
527
2415
  };
528
- export type InputToDataByTarget<T extends Input['out'], Target extends keyof ValidationTargets> = T extends {
2416
+ export type InputToDataByTarget<T extends Input["out"], Target extends keyof ValidationTargets> = T extends {
529
2417
  [K in Target]: infer R;
530
2418
  } ? R : never;
531
2419
  export type RemoveQuestion<T> = T extends `${infer R}?` ? R : T;
532
2420
  export type ExtractSchema<T> = UnionToIntersection<T extends HonoBase<infer _, infer S, any> ? S : never>;
533
2421
  type ProcessHead<T> = IfAnyThenEmptyObject<T extends Env ? (Env extends T ? {} : T) : T>;
534
- export type IntersectNonAnyTypes<T extends any[]> = T extends [infer Head, ...infer Rest] ? ProcessHead<Head> & IntersectNonAnyTypes<Rest> : {};
2422
+ export type IntersectNonAnyTypes<T extends any[]> = T extends [
2423
+ infer Head,
2424
+ ...infer Rest
2425
+ ] ? ProcessHead<Head> & IntersectNonAnyTypes<Rest> : {};
535
2426
  export declare abstract class FetchEventLike {
536
2427
  abstract readonly request: Request;
537
2428
  abstract respondWith(promise: Response | Promise<Response>): void;