hono 4.12.9 → 4.12.18
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.
- package/dist/adapter/aws-lambda/handler.js +9 -2
- package/dist/cjs/adapter/aws-lambda/handler.js +9 -2
- package/dist/cjs/helper/css/common.js +56 -7
- package/dist/cjs/helper/css/index.js +11 -4
- package/dist/cjs/helper/ssg/ssg.js +12 -8
- package/dist/cjs/helper/ssg/utils.js +9 -0
- package/dist/cjs/jsx/base.js +7 -1
- package/dist/cjs/jsx/dom/css.js +11 -4
- package/dist/cjs/jsx/dom/render.js +39 -17
- package/dist/cjs/jsx/jsx-runtime.js +3 -0
- package/dist/cjs/jsx/utils.js +155 -5
- package/dist/cjs/middleware/body-limit/index.js +21 -30
- package/dist/cjs/middleware/cache/index.js +11 -3
- package/dist/cjs/middleware/compress/index.js +4 -0
- package/dist/cjs/middleware/cors/index.js +2 -5
- package/dist/cjs/middleware/ip-restriction/index.js +31 -9
- package/dist/cjs/middleware/method-override/index.js +1 -1
- package/dist/cjs/middleware/serve-static/index.js +1 -1
- package/dist/cjs/middleware/trailing-slash/index.js +2 -2
- package/dist/cjs/utils/cookie.js +26 -5
- package/dist/cjs/utils/ipaddr.js +10 -4
- package/dist/cjs/utils/jwt/jws.js +1 -1
- package/dist/cjs/utils/jwt/jwt.js +12 -6
- package/dist/helper/css/common.js +56 -7
- package/dist/helper/css/index.js +11 -4
- package/dist/helper/ssg/ssg.js +19 -9
- package/dist/helper/ssg/utils.js +8 -0
- package/dist/jsx/base.js +13 -2
- package/dist/jsx/dom/css.js +11 -4
- package/dist/jsx/dom/render.js +39 -17
- package/dist/jsx/jsx-runtime.js +4 -1
- package/dist/jsx/utils.js +153 -5
- package/dist/middleware/body-limit/index.js +21 -30
- package/dist/middleware/cache/index.js +11 -3
- package/dist/middleware/compress/index.js +4 -0
- package/dist/middleware/cors/index.js +2 -5
- package/dist/middleware/ip-restriction/index.js +34 -10
- package/dist/middleware/method-override/index.js +1 -1
- package/dist/middleware/serve-static/index.js +1 -1
- package/dist/middleware/trailing-slash/index.js +2 -2
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/types/helper/css/common.d.ts +20 -3
- package/dist/types/helper/css/index.d.ts +9 -2
- package/dist/types/helper/ssg/utils.d.ts +1 -0
- package/dist/types/jsx/dom/css.d.ts +8 -2
- package/dist/types/jsx/utils.d.ts +3 -1
- package/dist/types/middleware/cache/index.d.ts +2 -0
- package/dist/types/middleware/cors/index.d.ts +1 -1
- package/dist/types/middleware/ip-restriction/index.d.ts +38 -2
- package/dist/types/middleware/trailing-slash/index.d.ts +16 -0
- package/dist/types/types.d.ts +116 -116
- package/dist/types/utils/ipaddr.d.ts +12 -0
- package/dist/utils/cookie.js +26 -5
- package/dist/utils/ipaddr.js +7 -3
- package/dist/utils/jwt/jws.js +1 -1
- package/dist/utils/jwt/jwt.js +12 -6
- package/package.json +1 -1
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
import type { Context } from '../../context';
|
|
6
6
|
import type { MiddlewareHandler } from '../../types';
|
|
7
7
|
type CORSOptions = {
|
|
8
|
-
origin
|
|
8
|
+
origin?: string | string[] | ((origin: string, c: Context) => Promise<string | undefined | null> | string | undefined | null);
|
|
9
9
|
allowMethods?: string[] | ((origin: string, c: Context) => Promise<string[]> | string[]);
|
|
10
10
|
allowHeaders?: string[];
|
|
11
11
|
maxAge?: number;
|
|
@@ -20,9 +20,45 @@ export interface IPRestrictionRules {
|
|
|
20
20
|
allowList?: IPRestrictionRule[];
|
|
21
21
|
}
|
|
22
22
|
/**
|
|
23
|
-
* IP Restriction Middleware
|
|
23
|
+
* IP Restriction Middleware for Hono.
|
|
24
24
|
*
|
|
25
|
-
* @
|
|
25
|
+
* @see {@link https://hono.dev/docs/middleware/builtin/ip-restriction}
|
|
26
|
+
*
|
|
27
|
+
* @param {GetConnInfo | ((c: Context) => string)} getIP - A function to retrieve the client IP address. Use `getConnInfo` from the appropriate runtime adapter.
|
|
28
|
+
* @param {IPRestrictionRules} rules - An object with optional `denyList` and `allowList` arrays of IP rules. Each rule can be a static IP, a CIDR range, or a custom function.
|
|
29
|
+
* @param {(remote: { addr: string; type: AddressType }, c: Context) => Response | Promise<Response>} [onError] - Optional custom handler invoked when a request is blocked. Defaults to returning a 403 Forbidden response.
|
|
30
|
+
* @returns {MiddlewareHandler} The middleware handler function.
|
|
31
|
+
*
|
|
32
|
+
* @example
|
|
33
|
+
* ```ts
|
|
34
|
+
* import { Hono } from 'hono'
|
|
35
|
+
* import { ipRestriction } from 'hono/ip-restriction'
|
|
36
|
+
* import { getConnInfo } from 'hono/cloudflare-workers'
|
|
37
|
+
*
|
|
38
|
+
* const app = new Hono()
|
|
39
|
+
*
|
|
40
|
+
* app.use(
|
|
41
|
+
* '*',
|
|
42
|
+
* ipRestriction(getConnInfo, {
|
|
43
|
+
* // Block a specific IP and an entire subnet
|
|
44
|
+
* denyList: ['192.168.0.5', '10.0.0.0/8'],
|
|
45
|
+
* // Only allow requests from localhost and a private range
|
|
46
|
+
* allowList: ['127.0.0.1', '::1', '192.168.1.0/24'],
|
|
47
|
+
* })
|
|
48
|
+
* )
|
|
49
|
+
*
|
|
50
|
+
* // With a custom error handler
|
|
51
|
+
* app.use(
|
|
52
|
+
* '/admin/*',
|
|
53
|
+
* ipRestriction(
|
|
54
|
+
* getConnInfo,
|
|
55
|
+
* { allowList: ['203.0.113.0/24'] },
|
|
56
|
+
* (remote, c) => c.text(`Access denied for ${remote.addr}`, 403)
|
|
57
|
+
* )
|
|
58
|
+
* )
|
|
59
|
+
*
|
|
60
|
+
* app.get('/', (c) => c.text('Hello!'))
|
|
61
|
+
* ```
|
|
26
62
|
*/
|
|
27
63
|
export declare const ipRestriction: (getIP: GetIPAddr, { denyList, allowList }: IPRestrictionRules, onError?: (remote: {
|
|
28
64
|
addr: string;
|
|
@@ -48,6 +48,22 @@ type AppendTrailingSlashOptions = {
|
|
|
48
48
|
* @default false
|
|
49
49
|
*/
|
|
50
50
|
alwaysRedirect?: boolean;
|
|
51
|
+
/**
|
|
52
|
+
* A function that determines whether to skip the redirect for a given path.
|
|
53
|
+
* If the function returns `true`, the redirect will be skipped.
|
|
54
|
+
* @param path - The request path
|
|
55
|
+
* @returns `true` to skip the redirect
|
|
56
|
+
*
|
|
57
|
+
* @example
|
|
58
|
+
* ```ts
|
|
59
|
+
* // Skip redirect for paths with file extensions
|
|
60
|
+
* app.use(appendTrailingSlash({
|
|
61
|
+
* alwaysRedirect: true,
|
|
62
|
+
* skip: (path) => /\.\w+$/.test(path),
|
|
63
|
+
* }))
|
|
64
|
+
* ```
|
|
65
|
+
*/
|
|
66
|
+
skip?: (path: string) => boolean;
|
|
51
67
|
};
|
|
52
68
|
/**
|
|
53
69
|
* Append trailing slash middleware for Hono.
|
package/dist/types/types.d.ts
CHANGED
|
@@ -310,138 +310,138 @@ export interface MiddlewareHandlerInterface<E extends Env = Env, S extends Schem
|
|
|
310
310
|
}
|
|
311
311
|
export interface OnHandlerInterface<E extends Env = Env, S extends Schema = BlankSchema, BasePath extends string = '/'> {
|
|
312
312
|
<M extends string, P extends string, MergedPath extends 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, MergePath<BasePath, P>>;
|
|
313
|
-
<M extends string, P extends string, MergedPath extends 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
|
|
314
|
-
<M extends string, P extends string, MergedPath extends 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
|
|
315
|
-
<M extends string, P extends string, MergedPath extends 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: [
|
|
316
|
-
H<E2, MergedPath, I
|
|
317
|
-
H<E3, MergedPath, I2
|
|
318
|
-
H<E4, MergedPath, I3
|
|
313
|
+
<M extends string, P extends string, MergedPath extends 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]>, M1 extends H<E2, MergedPath, I> = H<E2, MergedPath, I>>(method: M, path: P, ...handlers: [H<E2, MergedPath, I> & M1, H<E3, MergedPath, I2, R>]): HonoBase<IntersectNonAnyTypes<[E, E2, E3]>, S & ToSchema<M, MergePath<BasePath, P>, I2, MergeTypedResponse<R> | MergeMiddlewareResponse<M1>>, BasePath, MergePath<BasePath, P>>;
|
|
314
|
+
<M extends string, P extends string, MergedPath extends 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]>, M1 extends H<E2, MergedPath, I> = H<E2, MergedPath, I>, M2 extends H<E3, MergedPath, I2> = H<E3, MergedPath, I2>>(method: M, path: P, ...handlers: [H<E2, MergedPath, I> & M1, H<E3, MergedPath, I2> & M2, H<E4, MergedPath, I3, R>]): HonoBase<IntersectNonAnyTypes<[E, E2, E3, E4]>, S & ToSchema<M, MergePath<BasePath, P>, I3, MergeTypedResponse<R> | MergeMiddlewareResponse<M1> | MergeMiddlewareResponse<M2>>, BasePath, MergePath<BasePath, P>>;
|
|
315
|
+
<M extends string, P extends string, MergedPath extends 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]>, M1 extends H<E2, MergedPath, I> = H<E2, MergedPath, I>, M2 extends H<E3, MergedPath, I2> = H<E3, MergedPath, I2>, M3 extends H<E4, MergedPath, I3> = H<E4, MergedPath, I3>>(method: M, path: P, ...handlers: [
|
|
316
|
+
H<E2, MergedPath, I> & M1,
|
|
317
|
+
H<E3, MergedPath, I2> & M2,
|
|
318
|
+
H<E4, MergedPath, I3> & M3,
|
|
319
319
|
H<E5, MergedPath, I4, R>
|
|
320
|
-
]): HonoBase<IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, S & ToSchema<M, MergePath<BasePath, P>, I4, MergeTypedResponse<R>>, BasePath, MergePath<BasePath, P>>;
|
|
321
|
-
<M extends string, P extends string, MergedPath extends 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: [
|
|
322
|
-
H<E2, MergedPath, I
|
|
323
|
-
H<E3, MergedPath, I2
|
|
324
|
-
H<E4, MergedPath, I3
|
|
325
|
-
H<E5, MergedPath, I4
|
|
320
|
+
]): HonoBase<IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, S & ToSchema<M, MergePath<BasePath, P>, I4, MergeTypedResponse<R> | MergeMiddlewareResponse<M1> | MergeMiddlewareResponse<M2> | MergeMiddlewareResponse<M3>>, BasePath, MergePath<BasePath, P>>;
|
|
321
|
+
<M extends string, P extends string, MergedPath extends 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]>, M1 extends H<E2, MergedPath, I> = H<E2, MergedPath, I>, M2 extends H<E3, MergedPath, I2> = H<E3, MergedPath, I2>, M3 extends H<E4, MergedPath, I3> = H<E4, MergedPath, I3>, M4 extends H<E5, MergedPath, I4> = H<E5, MergedPath, I4>>(method: M, path: P, ...handlers: [
|
|
322
|
+
H<E2, MergedPath, I> & M1,
|
|
323
|
+
H<E3, MergedPath, I2> & M2,
|
|
324
|
+
H<E4, MergedPath, I3> & M3,
|
|
325
|
+
H<E5, MergedPath, I4> & M4,
|
|
326
326
|
H<E6, MergedPath, I5, R>
|
|
327
|
-
]): HonoBase<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>, S & ToSchema<M, MergePath<BasePath, P>, I5, MergeTypedResponse<R>>, BasePath, MergePath<BasePath, P>>;
|
|
328
|
-
<M extends string, P extends string, MergedPath extends 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: [
|
|
329
|
-
H<E2, MergedPath, I
|
|
330
|
-
H<E3, MergedPath, I2
|
|
331
|
-
H<E4, MergedPath, I3
|
|
332
|
-
H<E5, MergedPath, I4
|
|
333
|
-
H<E6, MergedPath, I5
|
|
327
|
+
]): HonoBase<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>, S & ToSchema<M, MergePath<BasePath, P>, I5, MergeTypedResponse<R> | MergeMiddlewareResponse<M1> | MergeMiddlewareResponse<M2> | MergeMiddlewareResponse<M3> | MergeMiddlewareResponse<M4>>, BasePath, MergePath<BasePath, P>>;
|
|
328
|
+
<M extends string, P extends string, MergedPath extends 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]>, M1 extends H<E2, MergedPath, I> = H<E2, MergedPath, I>, M2 extends H<E3, MergedPath, I2> = H<E3, MergedPath, I2>, M3 extends H<E4, MergedPath, I3> = H<E4, MergedPath, I3>, M4 extends H<E5, MergedPath, I4> = H<E5, MergedPath, I4>, M5 extends H<E6, MergedPath, I5> = H<E6, MergedPath, I5>>(method: M, path: P, ...handlers: [
|
|
329
|
+
H<E2, MergedPath, I> & M1,
|
|
330
|
+
H<E3, MergedPath, I2> & M2,
|
|
331
|
+
H<E4, MergedPath, I3> & M3,
|
|
332
|
+
H<E5, MergedPath, I4> & M4,
|
|
333
|
+
H<E6, MergedPath, I5> & M5,
|
|
334
334
|
H<E7, MergedPath, I6, R>
|
|
335
|
-
]): HonoBase<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7]>, S & ToSchema<M, MergePath<BasePath, P>, I6, MergeTypedResponse<R>>, BasePath, MergePath<BasePath, P>>;
|
|
336
|
-
<M extends string, P extends string, MergedPath extends 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: [
|
|
337
|
-
H<E2, MergedPath, I
|
|
338
|
-
H<E3, MergedPath, I2
|
|
339
|
-
H<E4, MergedPath, I3
|
|
340
|
-
H<E5, MergedPath, I4
|
|
341
|
-
H<E6, MergedPath, I5
|
|
342
|
-
H<E7, MergedPath, I6
|
|
335
|
+
]): HonoBase<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7]>, S & ToSchema<M, MergePath<BasePath, P>, I6, MergeTypedResponse<R> | MergeMiddlewareResponse<M1> | MergeMiddlewareResponse<M2> | MergeMiddlewareResponse<M3> | MergeMiddlewareResponse<M4> | MergeMiddlewareResponse<M5>>, BasePath, MergePath<BasePath, P>>;
|
|
336
|
+
<M extends string, P extends string, MergedPath extends 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]>, M1 extends H<E2, MergedPath, I> = H<E2, MergedPath, I>, M2 extends H<E3, MergedPath, I2> = H<E3, MergedPath, I2>, M3 extends H<E4, MergedPath, I3> = H<E4, MergedPath, I3>, M4 extends H<E5, MergedPath, I4> = H<E5, MergedPath, I4>, M5 extends H<E6, MergedPath, I5> = H<E6, MergedPath, I5>, M6 extends H<E7, MergedPath, I6> = H<E7, MergedPath, I6>>(method: M, path: P, ...handlers: [
|
|
337
|
+
H<E2, MergedPath, I> & M1,
|
|
338
|
+
H<E3, MergedPath, I2> & M2,
|
|
339
|
+
H<E4, MergedPath, I3> & M3,
|
|
340
|
+
H<E5, MergedPath, I4> & M4,
|
|
341
|
+
H<E6, MergedPath, I5> & M5,
|
|
342
|
+
H<E7, MergedPath, I6> & M6,
|
|
343
343
|
H<E8, MergedPath, I7, R>
|
|
344
|
-
]): HonoBase<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8]>, S & ToSchema<M, MergePath<BasePath, P>, I7, MergeTypedResponse<R>>, BasePath, MergePath<BasePath, P>>;
|
|
345
|
-
<M extends string, P extends string, MergedPath extends 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: [
|
|
346
|
-
H<E2, MergedPath, I
|
|
347
|
-
H<E3, MergedPath, I2
|
|
348
|
-
H<E4, MergedPath, I3
|
|
349
|
-
H<E5, MergedPath, I4
|
|
350
|
-
H<E6, MergedPath, I5
|
|
351
|
-
H<E7, MergedPath, I6
|
|
352
|
-
H<E8, MergedPath, I7
|
|
344
|
+
]): HonoBase<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8]>, S & ToSchema<M, MergePath<BasePath, P>, I7, MergeTypedResponse<R> | MergeMiddlewareResponse<M1> | MergeMiddlewareResponse<M2> | MergeMiddlewareResponse<M3> | MergeMiddlewareResponse<M4> | MergeMiddlewareResponse<M5> | MergeMiddlewareResponse<M6>>, BasePath, MergePath<BasePath, P>>;
|
|
345
|
+
<M extends string, P extends string, MergedPath extends 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]>, M1 extends H<E2, MergedPath, I> = H<E2, MergedPath, I>, M2 extends H<E3, MergedPath, I2> = H<E3, MergedPath, I2>, M3 extends H<E4, MergedPath, I3> = H<E4, MergedPath, I3>, M4 extends H<E5, MergedPath, I4> = H<E5, MergedPath, I4>, M5 extends H<E6, MergedPath, I5> = H<E6, MergedPath, I5>, M6 extends H<E7, MergedPath, I6> = H<E7, MergedPath, I6>, M7 extends H<E8, MergedPath, I7> = H<E8, MergedPath, I7>>(method: M, path: P, ...handlers: [
|
|
346
|
+
H<E2, MergedPath, I> & M1,
|
|
347
|
+
H<E3, MergedPath, I2> & M2,
|
|
348
|
+
H<E4, MergedPath, I3> & M3,
|
|
349
|
+
H<E5, MergedPath, I4> & M4,
|
|
350
|
+
H<E6, MergedPath, I5> & M5,
|
|
351
|
+
H<E7, MergedPath, I6> & M6,
|
|
352
|
+
H<E8, MergedPath, I7> & M7,
|
|
353
353
|
H<E9, MergedPath, I8, R>
|
|
354
|
-
]): HonoBase<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9]>, S & ToSchema<M, MergePath<BasePath, P>, I8, MergeTypedResponse<R>>, BasePath, MergePath<BasePath, P>>;
|
|
355
|
-
<M extends string, P extends string, MergedPath extends 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: [
|
|
356
|
-
H<E2, MergedPath, I
|
|
357
|
-
H<E3, MergedPath, I2
|
|
358
|
-
H<E4, MergedPath, I3
|
|
359
|
-
H<E5, MergedPath, I4
|
|
360
|
-
H<E6, MergedPath, I5
|
|
361
|
-
H<E7, MergedPath, I6
|
|
362
|
-
H<E8, MergedPath, I7
|
|
363
|
-
H<E9, MergedPath, I8
|
|
354
|
+
]): HonoBase<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9]>, S & ToSchema<M, MergePath<BasePath, P>, I8, MergeTypedResponse<R> | MergeMiddlewareResponse<M1> | MergeMiddlewareResponse<M2> | MergeMiddlewareResponse<M3> | MergeMiddlewareResponse<M4> | MergeMiddlewareResponse<M5> | MergeMiddlewareResponse<M6> | MergeMiddlewareResponse<M7>>, BasePath, MergePath<BasePath, P>>;
|
|
355
|
+
<M extends string, P extends string, MergedPath extends 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]>, M1 extends H<E2, MergedPath, I> = H<E2, MergedPath, I>, M2 extends H<E3, MergedPath, I2> = H<E3, MergedPath, I2>, M3 extends H<E4, MergedPath, I3> = H<E4, MergedPath, I3>, M4 extends H<E5, MergedPath, I4> = H<E5, MergedPath, I4>, M5 extends H<E6, MergedPath, I5> = H<E6, MergedPath, I5>, M6 extends H<E7, MergedPath, I6> = H<E7, MergedPath, I6>, M7 extends H<E8, MergedPath, I7> = H<E8, MergedPath, I7>, M8 extends H<E9, MergedPath, I8> = H<E9, MergedPath, I8>>(method: M, path: P, ...handlers: [
|
|
356
|
+
H<E2, MergedPath, I> & M1,
|
|
357
|
+
H<E3, MergedPath, I2> & M2,
|
|
358
|
+
H<E4, MergedPath, I3> & M3,
|
|
359
|
+
H<E5, MergedPath, I4> & M4,
|
|
360
|
+
H<E6, MergedPath, I5> & M5,
|
|
361
|
+
H<E7, MergedPath, I6> & M6,
|
|
362
|
+
H<E8, MergedPath, I7> & M7,
|
|
363
|
+
H<E9, MergedPath, I8> & M8,
|
|
364
364
|
H<E10, MergedPath, I9, R>
|
|
365
|
-
]): HonoBase<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9, E10]>, S & ToSchema<M, MergePath<BasePath, P>, I9, MergeTypedResponse<R>>, BasePath, MergePath<BasePath, P>>;
|
|
366
|
-
<M extends string, P extends string, MergedPath extends 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: [
|
|
367
|
-
H<E2, MergedPath, I
|
|
368
|
-
H<E3, MergedPath, I2
|
|
369
|
-
H<E4, MergedPath, I3
|
|
370
|
-
H<E5, MergedPath, I4
|
|
371
|
-
H<E6, MergedPath, I5
|
|
372
|
-
H<E7, MergedPath, I6
|
|
373
|
-
H<E8, MergedPath, I7
|
|
374
|
-
H<E9, MergedPath, I8
|
|
375
|
-
H<E10, MergedPath, I9
|
|
365
|
+
]): HonoBase<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9, E10]>, S & ToSchema<M, MergePath<BasePath, P>, I9, MergeTypedResponse<R> | MergeMiddlewareResponse<M1> | MergeMiddlewareResponse<M2> | MergeMiddlewareResponse<M3> | MergeMiddlewareResponse<M4> | MergeMiddlewareResponse<M5> | MergeMiddlewareResponse<M6> | MergeMiddlewareResponse<M7> | MergeMiddlewareResponse<M8>>, BasePath, MergePath<BasePath, P>>;
|
|
366
|
+
<M extends string, P extends string, MergedPath extends 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]>, M1 extends H<E2, MergedPath, I> = H<E2, MergedPath, I>, M2 extends H<E3, MergedPath, I2> = H<E3, MergedPath, I2>, M3 extends H<E4, MergedPath, I3> = H<E4, MergedPath, I3>, M4 extends H<E5, MergedPath, I4> = H<E5, MergedPath, I4>, M5 extends H<E6, MergedPath, I5> = H<E6, MergedPath, I5>, M6 extends H<E7, MergedPath, I6> = H<E7, MergedPath, I6>, M7 extends H<E8, MergedPath, I7> = H<E8, MergedPath, I7>, M8 extends H<E9, MergedPath, I8> = H<E9, MergedPath, I8>, M9 extends H<E10, MergedPath, I9> = H<E10, MergedPath, I9>>(method: M, path: P, ...handlers: [
|
|
367
|
+
H<E2, MergedPath, I> & M1,
|
|
368
|
+
H<E3, MergedPath, I2> & M2,
|
|
369
|
+
H<E4, MergedPath, I3> & M3,
|
|
370
|
+
H<E5, MergedPath, I4> & M4,
|
|
371
|
+
H<E6, MergedPath, I5> & M5,
|
|
372
|
+
H<E7, MergedPath, I6> & M6,
|
|
373
|
+
H<E8, MergedPath, I7> & M7,
|
|
374
|
+
H<E9, MergedPath, I8> & M8,
|
|
375
|
+
H<E10, MergedPath, I9> & M9,
|
|
376
376
|
H<E11, MergedPath, I10, R>
|
|
377
|
-
]): HonoBase<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9, E10, E11]>, S & ToSchema<M, MergePath<BasePath, P>, I10, MergeTypedResponse<
|
|
377
|
+
]): HonoBase<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9, E10, E11]>, S & ToSchema<M, MergePath<BasePath, P>, I10, MergeTypedResponse<R> | MergeMiddlewareResponse<M1> | MergeMiddlewareResponse<M2> | MergeMiddlewareResponse<M3> | MergeMiddlewareResponse<M4> | MergeMiddlewareResponse<M5> | MergeMiddlewareResponse<M6> | MergeMiddlewareResponse<M7> | MergeMiddlewareResponse<M8> | MergeMiddlewareResponse<M9>>, BasePath, MergePath<BasePath, P>>;
|
|
378
378
|
<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>, ...H<E, MergePath<BasePath, P>, I, R>[]]): HonoBase<E, S & ToSchema<M, MergePath<BasePath, P>, I, MergeTypedResponse<R>>, BasePath, MergePath<BasePath, P>>;
|
|
379
379
|
<M extends string, P extends string, MergedPath extends MergePath<BasePath, P>, R extends HandlerResponse<any> = any, I extends Input = BlankInput, E2 extends Env = E>(methods: M[], path: P, handler: H<E2, MergedPath, I, R>): HonoBase<IntersectNonAnyTypes<[E, E2]>, S & ToSchema<M, MergePath<BasePath, P>, I, MergeTypedResponse<R>>, BasePath, MergePath<BasePath, P>>;
|
|
380
|
-
<M extends string, P extends string, MergedPath extends 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: M[], path: P, ...handlers: [H<E2, MergedPath, I
|
|
381
|
-
<M extends string, P extends string, MergedPath extends 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: M[], path: P, ...handlers: [H<E2, MergedPath, I
|
|
382
|
-
<M extends string, P extends string, MergedPath extends 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: M[], path: P, ...handlers: [
|
|
383
|
-
H<E2, MergedPath, I
|
|
384
|
-
H<E3, MergedPath, I2
|
|
385
|
-
H<E4, MergedPath, I3
|
|
380
|
+
<M extends string, P extends string, MergedPath extends 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]>, M1 extends H<E2, MergedPath, I> = H<E2, MergedPath, I>>(methods: M[], path: P, ...handlers: [H<E2, MergedPath, I> & M1, H<E3, MergedPath, I2, R>]): HonoBase<IntersectNonAnyTypes<[E, E2, E3]>, S & ToSchema<M, MergePath<BasePath, P>, I2, MergeTypedResponse<R> | MergeMiddlewareResponse<M1>>, BasePath, MergePath<BasePath, P>>;
|
|
381
|
+
<M extends string, P extends string, MergedPath extends 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]>, M1 extends H<E2, MergedPath, I> = H<E2, MergedPath, I>, M2 extends H<E3, MergedPath, I2> = H<E3, MergedPath, I2>>(methods: M[], path: P, ...handlers: [H<E2, MergedPath, I> & M1, H<E3, MergedPath, I2> & M2, H<E4, MergedPath, I3, R>]): HonoBase<IntersectNonAnyTypes<[E, E2, E3, E4]>, S & ToSchema<M, MergePath<BasePath, P>, I3, MergeTypedResponse<R> | MergeMiddlewareResponse<M1> | MergeMiddlewareResponse<M2>>, BasePath, MergePath<BasePath, P>>;
|
|
382
|
+
<M extends string, P extends string, MergedPath extends 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]>, M1 extends H<E2, MergedPath, I> = H<E2, MergedPath, I>, M2 extends H<E3, MergedPath, I2> = H<E3, MergedPath, I2>, M3 extends H<E4, MergedPath, I3> = H<E4, MergedPath, I3>>(methods: M[], path: P, ...handlers: [
|
|
383
|
+
H<E2, MergedPath, I> & M1,
|
|
384
|
+
H<E3, MergedPath, I2> & M2,
|
|
385
|
+
H<E4, MergedPath, I3> & M3,
|
|
386
386
|
H<E5, MergedPath, I4, R>
|
|
387
|
-
]): HonoBase<IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, S & ToSchema<M, MergePath<BasePath, P>, I4, MergeTypedResponse<R>>, BasePath, MergePath<BasePath, P>>;
|
|
388
|
-
<M extends string, P extends string, MergedPath extends 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: M[], path: P, ...handlers: [
|
|
389
|
-
H<E2, MergedPath, I
|
|
390
|
-
H<E3, MergedPath, I2
|
|
391
|
-
H<E4, MergedPath, I3
|
|
392
|
-
H<E5, MergedPath, I4
|
|
387
|
+
]): HonoBase<IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, S & ToSchema<M, MergePath<BasePath, P>, I4, MergeTypedResponse<R> | MergeMiddlewareResponse<M1> | MergeMiddlewareResponse<M2> | MergeMiddlewareResponse<M3>>, BasePath, MergePath<BasePath, P>>;
|
|
388
|
+
<M extends string, P extends string, MergedPath extends 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]>, M1 extends H<E2, MergedPath, I> = H<E2, MergedPath, I>, M2 extends H<E3, MergedPath, I2> = H<E3, MergedPath, I2>, M3 extends H<E4, MergedPath, I3> = H<E4, MergedPath, I3>, M4 extends H<E5, MergedPath, I4> = H<E5, MergedPath, I4>>(methods: M[], path: P, ...handlers: [
|
|
389
|
+
H<E2, MergedPath, I> & M1,
|
|
390
|
+
H<E3, MergedPath, I2> & M2,
|
|
391
|
+
H<E4, MergedPath, I3> & M3,
|
|
392
|
+
H<E5, MergedPath, I4> & M4,
|
|
393
393
|
H<E6, MergedPath, I5, R>
|
|
394
|
-
]): HonoBase<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>, S & ToSchema<M, MergePath<BasePath, P>, I5, MergeTypedResponse<R>>, BasePath, MergePath<BasePath, P>>;
|
|
395
|
-
<M extends string, P extends string, MergedPath extends 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: M[], path: P, ...handlers: [
|
|
396
|
-
H<E2, MergedPath, I
|
|
397
|
-
H<E3, MergedPath, I2
|
|
398
|
-
H<E4, MergedPath, I3
|
|
399
|
-
H<E5, MergedPath, I4
|
|
400
|
-
H<E6, MergedPath, I5
|
|
394
|
+
]): HonoBase<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>, S & ToSchema<M, MergePath<BasePath, P>, I5, MergeTypedResponse<R> | MergeMiddlewareResponse<M1> | MergeMiddlewareResponse<M2> | MergeMiddlewareResponse<M3> | MergeMiddlewareResponse<M4>>, BasePath, MergePath<BasePath, P>>;
|
|
395
|
+
<M extends string, P extends string, MergedPath extends 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]>, M1 extends H<E2, MergedPath, I> = H<E2, MergedPath, I>, M2 extends H<E3, MergedPath, I2> = H<E3, MergedPath, I2>, M3 extends H<E4, MergedPath, I3> = H<E4, MergedPath, I3>, M4 extends H<E5, MergedPath, I4> = H<E5, MergedPath, I4>, M5 extends H<E6, MergedPath, I5> = H<E6, MergedPath, I5>>(methods: M[], path: P, ...handlers: [
|
|
396
|
+
H<E2, MergedPath, I> & M1,
|
|
397
|
+
H<E3, MergedPath, I2> & M2,
|
|
398
|
+
H<E4, MergedPath, I3> & M3,
|
|
399
|
+
H<E5, MergedPath, I4> & M4,
|
|
400
|
+
H<E6, MergedPath, I5> & M5,
|
|
401
401
|
H<E7, MergedPath, I6, R>
|
|
402
|
-
]): HonoBase<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7]>, S & ToSchema<M, MergePath<BasePath, P>, I6, MergeTypedResponse<R>>, BasePath, MergePath<BasePath, P>>;
|
|
403
|
-
<M extends string, P extends string, MergedPath extends 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: M[], path: P, ...handlers: [
|
|
404
|
-
H<E2, MergedPath, I
|
|
405
|
-
H<E3, MergedPath, I2
|
|
406
|
-
H<E4, MergedPath, I3
|
|
407
|
-
H<E5, MergedPath, I4
|
|
408
|
-
H<E6, MergedPath, I5
|
|
409
|
-
H<E7, MergedPath, I6
|
|
402
|
+
]): HonoBase<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7]>, S & ToSchema<M, MergePath<BasePath, P>, I6, MergeTypedResponse<R> | MergeMiddlewareResponse<M1> | MergeMiddlewareResponse<M2> | MergeMiddlewareResponse<M3> | MergeMiddlewareResponse<M4> | MergeMiddlewareResponse<M5>>, BasePath, MergePath<BasePath, P>>;
|
|
403
|
+
<M extends string, P extends string, MergedPath extends 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]>, M1 extends H<E2, MergedPath, I> = H<E2, MergedPath, I>, M2 extends H<E3, MergedPath, I2> = H<E3, MergedPath, I2>, M3 extends H<E4, MergedPath, I3> = H<E4, MergedPath, I3>, M4 extends H<E5, MergedPath, I4> = H<E5, MergedPath, I4>, M5 extends H<E6, MergedPath, I5> = H<E6, MergedPath, I5>, M6 extends H<E7, MergedPath, I6> = H<E7, MergedPath, I6>>(methods: M[], path: P, ...handlers: [
|
|
404
|
+
H<E2, MergedPath, I> & M1,
|
|
405
|
+
H<E3, MergedPath, I2> & M2,
|
|
406
|
+
H<E4, MergedPath, I3> & M3,
|
|
407
|
+
H<E5, MergedPath, I4> & M4,
|
|
408
|
+
H<E6, MergedPath, I5> & M5,
|
|
409
|
+
H<E7, MergedPath, I6> & M6,
|
|
410
410
|
H<E8, MergedPath, I7, R>
|
|
411
|
-
]): HonoBase<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8]>, S & ToSchema<M, MergePath<BasePath, P>, I7, MergeTypedResponse<R>>, BasePath, MergePath<BasePath, P>>;
|
|
412
|
-
<M extends string, P extends string, MergedPath extends 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: M[], path: P, ...handlers: [
|
|
413
|
-
H<E2, MergedPath, I
|
|
414
|
-
H<E3, MergedPath, I2
|
|
415
|
-
H<E4, MergedPath, I3
|
|
416
|
-
H<E5, MergedPath, I4
|
|
417
|
-
H<E6, MergedPath, I5
|
|
418
|
-
H<E7, MergedPath, I6
|
|
419
|
-
H<E8, MergedPath, I7
|
|
411
|
+
]): HonoBase<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8]>, S & ToSchema<M, MergePath<BasePath, P>, I7, MergeTypedResponse<R> | MergeMiddlewareResponse<M1> | MergeMiddlewareResponse<M2> | MergeMiddlewareResponse<M3> | MergeMiddlewareResponse<M4> | MergeMiddlewareResponse<M5> | MergeMiddlewareResponse<M6>>, BasePath, MergePath<BasePath, P>>;
|
|
412
|
+
<M extends string, P extends string, MergedPath extends 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]>, M1 extends H<E2, MergedPath, I> = H<E2, MergedPath, I>, M2 extends H<E3, MergedPath, I2> = H<E3, MergedPath, I2>, M3 extends H<E4, MergedPath, I3> = H<E4, MergedPath, I3>, M4 extends H<E5, MergedPath, I4> = H<E5, MergedPath, I4>, M5 extends H<E6, MergedPath, I5> = H<E6, MergedPath, I5>, M6 extends H<E7, MergedPath, I6> = H<E7, MergedPath, I6>, M7 extends H<E8, MergedPath, I7> = H<E8, MergedPath, I7>>(methods: M[], path: P, ...handlers: [
|
|
413
|
+
H<E2, MergedPath, I> & M1,
|
|
414
|
+
H<E3, MergedPath, I2> & M2,
|
|
415
|
+
H<E4, MergedPath, I3> & M3,
|
|
416
|
+
H<E5, MergedPath, I4> & M4,
|
|
417
|
+
H<E6, MergedPath, I5> & M5,
|
|
418
|
+
H<E7, MergedPath, I6> & M6,
|
|
419
|
+
H<E8, MergedPath, I7> & M7,
|
|
420
420
|
H<E9, MergedPath, I8, R>
|
|
421
|
-
]): HonoBase<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9]>, S & ToSchema<M, MergePath<BasePath, P>, I8, MergeTypedResponse<R>>, BasePath, MergePath<BasePath, P>>;
|
|
422
|
-
<M extends string, P extends string, MergedPath extends 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: M[], path: P, ...handlers: [
|
|
423
|
-
H<E2, MergedPath, I
|
|
424
|
-
H<E3, MergedPath, I2
|
|
425
|
-
H<E4, MergedPath, I3
|
|
426
|
-
H<E5, MergedPath, I4
|
|
427
|
-
H<E6, MergedPath, I5
|
|
428
|
-
H<E7, MergedPath, I6
|
|
429
|
-
H<E8, MergedPath, I7
|
|
430
|
-
H<E9, MergedPath, I8
|
|
421
|
+
]): HonoBase<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9]>, S & ToSchema<M, MergePath<BasePath, P>, I8, MergeTypedResponse<R> | MergeMiddlewareResponse<M1> | MergeMiddlewareResponse<M2> | MergeMiddlewareResponse<M3> | MergeMiddlewareResponse<M4> | MergeMiddlewareResponse<M5> | MergeMiddlewareResponse<M6> | MergeMiddlewareResponse<M7>>, BasePath, MergePath<BasePath, P>>;
|
|
422
|
+
<M extends string, P extends string, MergedPath extends 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]>, M1 extends H<E2, MergedPath, I> = H<E2, MergedPath, I>, M2 extends H<E3, MergedPath, I2> = H<E3, MergedPath, I2>, M3 extends H<E4, MergedPath, I3> = H<E4, MergedPath, I3>, M4 extends H<E5, MergedPath, I4> = H<E5, MergedPath, I4>, M5 extends H<E6, MergedPath, I5> = H<E6, MergedPath, I5>, M6 extends H<E7, MergedPath, I6> = H<E7, MergedPath, I6>, M7 extends H<E8, MergedPath, I7> = H<E8, MergedPath, I7>, M8 extends H<E9, MergedPath, I8> = H<E9, MergedPath, I8>>(methods: M[], path: P, ...handlers: [
|
|
423
|
+
H<E2, MergedPath, I> & M1,
|
|
424
|
+
H<E3, MergedPath, I2> & M2,
|
|
425
|
+
H<E4, MergedPath, I3> & M3,
|
|
426
|
+
H<E5, MergedPath, I4> & M4,
|
|
427
|
+
H<E6, MergedPath, I5> & M5,
|
|
428
|
+
H<E7, MergedPath, I6> & M6,
|
|
429
|
+
H<E8, MergedPath, I7> & M7,
|
|
430
|
+
H<E9, MergedPath, I8> & M8,
|
|
431
431
|
H<E10, MergedPath, I9, R>
|
|
432
|
-
]): HonoBase<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9, E10]>, S & ToSchema<M, MergePath<BasePath, P>, I9, MergeTypedResponse<
|
|
433
|
-
<M extends string, P extends string, MergedPath extends 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: M[], path: P, ...handlers: [
|
|
434
|
-
H<E2, MergedPath, I
|
|
435
|
-
H<E3, MergedPath, I2
|
|
436
|
-
H<E4, MergedPath, I3
|
|
437
|
-
H<E5, MergedPath, I4
|
|
438
|
-
H<E6, MergedPath, I5
|
|
439
|
-
H<E7, MergedPath, I6
|
|
440
|
-
H<E8, MergedPath, I7
|
|
441
|
-
H<E9, MergedPath, I8
|
|
442
|
-
H<E10, MergedPath, I9
|
|
432
|
+
]): HonoBase<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9, E10]>, S & ToSchema<M, MergePath<BasePath, P>, I9, MergeTypedResponse<R> | MergeMiddlewareResponse<M1> | MergeMiddlewareResponse<M2> | MergeMiddlewareResponse<M3> | MergeMiddlewareResponse<M4> | MergeMiddlewareResponse<M5> | MergeMiddlewareResponse<M6> | MergeMiddlewareResponse<M7> | MergeMiddlewareResponse<M8>>, BasePath, MergePath<BasePath, P>>;
|
|
433
|
+
<M extends string, P extends string, MergedPath extends 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]>, M1 extends H<E2, MergedPath, I> = H<E2, MergedPath, I>, M2 extends H<E3, MergedPath, I2> = H<E3, MergedPath, I2>, M3 extends H<E4, MergedPath, I3> = H<E4, MergedPath, I3>, M4 extends H<E5, MergedPath, I4> = H<E5, MergedPath, I4>, M5 extends H<E6, MergedPath, I5> = H<E6, MergedPath, I5>, M6 extends H<E7, MergedPath, I6> = H<E7, MergedPath, I6>, M7 extends H<E8, MergedPath, I7> = H<E8, MergedPath, I7>, M8 extends H<E9, MergedPath, I8> = H<E9, MergedPath, I8>, M9 extends H<E10, MergedPath, I9> = H<E10, MergedPath, I9>>(methods: M[], path: P, ...handlers: [
|
|
434
|
+
H<E2, MergedPath, I> & M1,
|
|
435
|
+
H<E3, MergedPath, I2> & M2,
|
|
436
|
+
H<E4, MergedPath, I3> & M3,
|
|
437
|
+
H<E5, MergedPath, I4> & M4,
|
|
438
|
+
H<E6, MergedPath, I5> & M5,
|
|
439
|
+
H<E7, MergedPath, I6> & M6,
|
|
440
|
+
H<E8, MergedPath, I7> & M7,
|
|
441
|
+
H<E9, MergedPath, I8> & M8,
|
|
442
|
+
H<E10, MergedPath, I9> & M9,
|
|
443
443
|
H<E11, MergedPath, I10, R>
|
|
444
|
-
]): HonoBase<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9, E10, E11]>, S & ToSchema<M, MergePath<BasePath, P>, I10, MergeTypedResponse<
|
|
444
|
+
]): HonoBase<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9, E10, E11]>, S & ToSchema<M, MergePath<BasePath, P>, I10, MergeTypedResponse<R> | MergeMiddlewareResponse<M1> | MergeMiddlewareResponse<M2> | MergeMiddlewareResponse<M3> | MergeMiddlewareResponse<M4> | MergeMiddlewareResponse<M5> | MergeMiddlewareResponse<M6> | MergeMiddlewareResponse<M7> | MergeMiddlewareResponse<M8> | MergeMiddlewareResponse<M9>>, BasePath, MergePath<BasePath, P>>;
|
|
445
445
|
<M extends string, P extends string, R extends HandlerResponse<any> = any, I extends Input = BlankInput>(methods: M[], path: P, ...handlers: [H<E, MergePath<BasePath, P>, I, R>, ...H<E, MergePath<BasePath, P>, I, R>[]]): HonoBase<E, S & ToSchema<M, MergePath<BasePath, P>, I, MergeTypedResponse<R>>, BasePath, MergePath<BasePath, P>>;
|
|
446
446
|
<M extends string, const Ps extends string[], I extends Input = BlankInput, R extends HandlerResponse<any> = any, E2 extends Env = E>(methods: M | M[], paths: Ps, ...handlers: H<E2, MergePath<BasePath, Ps[number]>, I, R>[]): HonoBase<E, S & ToSchema<M, MergePath<BasePath, Ps[number]>, I, MergeTypedResponse<R>>, BasePath, Ps extends [...string[], infer LastPath extends string] ? MergePath<BasePath, LastPath> : never>;
|
|
447
447
|
}
|
|
@@ -32,6 +32,18 @@ export declare const convertIPv6ToBinary: (ipv6: string) => bigint;
|
|
|
32
32
|
* @return IPv4 Address in string
|
|
33
33
|
*/
|
|
34
34
|
export declare const convertIPv4BinaryToString: (ipV4: bigint) => string;
|
|
35
|
+
/**
|
|
36
|
+
* Check if a binary IPv6 address is an IPv4-mapped IPv6 address (::ffff:x.x.x.x)
|
|
37
|
+
* @param ipv6binary binary IPv6 Address
|
|
38
|
+
* @return true if the address is an IPv4-mapped IPv6 address
|
|
39
|
+
*/
|
|
40
|
+
export declare const isIPv4MappedIPv6: (ipv6binary: bigint) => boolean;
|
|
41
|
+
/**
|
|
42
|
+
* Extract the IPv4 portion from an IPv4-mapped IPv6 address
|
|
43
|
+
* @param ipv6binary binary IPv4-mapped IPv6 Address
|
|
44
|
+
* @return binary IPv4 Address
|
|
45
|
+
*/
|
|
46
|
+
export declare const convertIPv4MappedIPv6ToIPv4: (ipv6binary: bigint) => bigint;
|
|
35
47
|
/**
|
|
36
48
|
* Convert a binary representation of an IPv6 address to a string.
|
|
37
49
|
* @param ipV6 binary IPv6 Address
|
package/dist/utils/cookie.js
CHANGED
|
@@ -24,23 +24,41 @@ var verifySignature = async (base64Signature, value, secret) => {
|
|
|
24
24
|
};
|
|
25
25
|
var validCookieNameRegEx = /^[\w!#$%&'*.^`|~+-]+$/;
|
|
26
26
|
var validCookieValueRegEx = /^[ !#-:<-[\]-~]*$/;
|
|
27
|
+
var trimCookieWhitespace = (value) => {
|
|
28
|
+
let start = 0;
|
|
29
|
+
let end = value.length;
|
|
30
|
+
while (start < end) {
|
|
31
|
+
const charCode = value.charCodeAt(start);
|
|
32
|
+
if (charCode !== 32 && charCode !== 9) {
|
|
33
|
+
break;
|
|
34
|
+
}
|
|
35
|
+
start++;
|
|
36
|
+
}
|
|
37
|
+
while (end > start) {
|
|
38
|
+
const charCode = value.charCodeAt(end - 1);
|
|
39
|
+
if (charCode !== 32 && charCode !== 9) {
|
|
40
|
+
break;
|
|
41
|
+
}
|
|
42
|
+
end--;
|
|
43
|
+
}
|
|
44
|
+
return start === 0 && end === value.length ? value : value.slice(start, end);
|
|
45
|
+
};
|
|
27
46
|
var parse = (cookie, name) => {
|
|
28
47
|
if (name && cookie.indexOf(name) === -1) {
|
|
29
48
|
return {};
|
|
30
49
|
}
|
|
31
|
-
const pairs = cookie.
|
|
50
|
+
const pairs = cookie.split(";");
|
|
32
51
|
const parsedCookie = {};
|
|
33
|
-
for (
|
|
34
|
-
pairStr = pairStr.trim();
|
|
52
|
+
for (const pairStr of pairs) {
|
|
35
53
|
const valueStartPos = pairStr.indexOf("=");
|
|
36
54
|
if (valueStartPos === -1) {
|
|
37
55
|
continue;
|
|
38
56
|
}
|
|
39
|
-
const cookieName = pairStr.substring(0, valueStartPos)
|
|
57
|
+
const cookieName = trimCookieWhitespace(pairStr.substring(0, valueStartPos));
|
|
40
58
|
if (name && name !== cookieName || !validCookieNameRegEx.test(cookieName)) {
|
|
41
59
|
continue;
|
|
42
60
|
}
|
|
43
|
-
let cookieValue = pairStr.substring(valueStartPos + 1)
|
|
61
|
+
let cookieValue = trimCookieWhitespace(pairStr.substring(valueStartPos + 1));
|
|
44
62
|
if (cookieValue.startsWith('"') && cookieValue.endsWith('"')) {
|
|
45
63
|
cookieValue = cookieValue.slice(1, -1);
|
|
46
64
|
}
|
|
@@ -72,6 +90,9 @@ var parseSigned = async (cookie, secret, name) => {
|
|
|
72
90
|
return parsedCookie;
|
|
73
91
|
};
|
|
74
92
|
var _serialize = (name, value, opt = {}) => {
|
|
93
|
+
if (!validCookieNameRegEx.test(name)) {
|
|
94
|
+
throw new Error("Invalid cookie name");
|
|
95
|
+
}
|
|
75
96
|
let cookie = `${name}=${value}`;
|
|
76
97
|
if (name.startsWith("__Secure-") && !opt.secure) {
|
|
77
98
|
throw new Error("__Secure- Cookie must have Secure attributes");
|
package/dist/utils/ipaddr.js
CHANGED
|
@@ -55,9 +55,11 @@ var convertIPv4BinaryToString = (ipV4) => {
|
|
|
55
55
|
}
|
|
56
56
|
return sections.join(".");
|
|
57
57
|
};
|
|
58
|
+
var isIPv4MappedIPv6 = (ipv6binary) => ipv6binary >> 32n === 0xffffn;
|
|
59
|
+
var convertIPv4MappedIPv6ToIPv4 = (ipv6binary) => ipv6binary & 0xffffffffn;
|
|
58
60
|
var convertIPv6BinaryToString = (ipV6) => {
|
|
59
|
-
if (ipV6
|
|
60
|
-
return `::ffff:${convertIPv4BinaryToString(ipV6
|
|
61
|
+
if (isIPv4MappedIPv6(ipV6)) {
|
|
62
|
+
return `::ffff:${convertIPv4BinaryToString(convertIPv4MappedIPv6ToIPv4(ipV6))}`;
|
|
61
63
|
}
|
|
62
64
|
const sections = [];
|
|
63
65
|
for (let i = 0; i < 8; i++) {
|
|
@@ -94,9 +96,11 @@ var convertIPv6BinaryToString = (ipV6) => {
|
|
|
94
96
|
};
|
|
95
97
|
export {
|
|
96
98
|
convertIPv4BinaryToString,
|
|
99
|
+
convertIPv4MappedIPv6ToIPv4,
|
|
97
100
|
convertIPv4ToBinary,
|
|
98
101
|
convertIPv6BinaryToString,
|
|
99
102
|
convertIPv6ToBinary,
|
|
100
103
|
distinctRemoteAddr,
|
|
101
|
-
expandIPv6
|
|
104
|
+
expandIPv6,
|
|
105
|
+
isIPv4MappedIPv6
|
|
102
106
|
};
|
package/dist/utils/jwt/jws.js
CHANGED
|
@@ -14,7 +14,7 @@ async function verifying(publicKey, alg, signature, data) {
|
|
|
14
14
|
return await crypto.subtle.verify(algorithm, cryptoKey, signature, data);
|
|
15
15
|
}
|
|
16
16
|
function pemToBinary(pem) {
|
|
17
|
-
return decodeBase64(pem.replace(/-+(BEGIN|END)
|
|
17
|
+
return decodeBase64(pem.replace(/-+(BEGIN|END).*?-+/g, "").replace(/\s/g, ""));
|
|
18
18
|
}
|
|
19
19
|
async function importPrivateKey(key, alg) {
|
|
20
20
|
if (!crypto.subtle || !crypto.subtle.importKey) {
|
package/dist/utils/jwt/jwt.js
CHANGED
|
@@ -70,14 +70,20 @@ var verify = async (token, publicKey, algOrOptions) => {
|
|
|
70
70
|
throw new JwtAlgorithmMismatch(alg, header.alg);
|
|
71
71
|
}
|
|
72
72
|
const now = Math.floor(Date.now() / 1e3);
|
|
73
|
-
if (nbf && payload.nbf
|
|
74
|
-
|
|
73
|
+
if (nbf && payload.nbf !== void 0) {
|
|
74
|
+
if (typeof payload.nbf !== "number" || !Number.isFinite(payload.nbf) || payload.nbf > now) {
|
|
75
|
+
throw new JwtTokenNotBefore(token);
|
|
76
|
+
}
|
|
75
77
|
}
|
|
76
|
-
if (exp && payload.exp
|
|
77
|
-
|
|
78
|
+
if (exp && payload.exp !== void 0) {
|
|
79
|
+
if (typeof payload.exp !== "number" || !Number.isFinite(payload.exp) || payload.exp <= now) {
|
|
80
|
+
throw new JwtTokenExpired(token);
|
|
81
|
+
}
|
|
78
82
|
}
|
|
79
|
-
if (iat && payload.iat
|
|
80
|
-
|
|
83
|
+
if (iat && payload.iat !== void 0) {
|
|
84
|
+
if (typeof payload.iat !== "number" || !Number.isFinite(payload.iat) || now < payload.iat) {
|
|
85
|
+
throw new JwtTokenIssuedAt(now, payload.iat);
|
|
86
|
+
}
|
|
81
87
|
}
|
|
82
88
|
if (iss) {
|
|
83
89
|
if (!payload.iss) {
|