@taserjs/router 0.0.4 → 0.1.0
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/cjs/builder/app.cjs +27 -0
- package/dist/cjs/builder/app.cjs.map +1 -0
- package/dist/cjs/builder/app.d.cts +11 -0
- package/dist/cjs/{constants.cjs → builder/constants.cjs} +1 -1
- package/dist/cjs/builder/constants.cjs.map +1 -0
- package/dist/cjs/{factories.cjs → builder/factories.cjs} +5 -5
- package/dist/cjs/builder/factories.cjs.map +1 -0
- package/dist/cjs/builder/factories.d.cts +15 -0
- package/dist/cjs/{middleware.cjs → builder/middleware.cjs} +1 -1
- package/dist/cjs/builder/middleware.cjs.map +1 -0
- package/dist/cjs/{middleware.d.cts → builder/middleware.d.cts} +1 -1
- package/dist/cjs/{route.cjs → builder/route.cjs} +41 -34
- package/dist/cjs/builder/route.cjs.map +1 -0
- package/dist/cjs/builder/route.d.cts +4 -0
- package/dist/cjs/{taser-router.cjs → builder/router.cjs} +38 -13
- package/dist/cjs/builder/router.cjs.map +1 -0
- package/dist/{esm/taser-router.d.ts → cjs/builder/router.d.cts} +16 -11
- package/dist/cjs/{create-context.cjs → context/create-context.cjs} +1 -1
- package/dist/cjs/context/create-context.cjs.map +1 -0
- package/dist/cjs/{create-context.d.cts → context/create-context.d.cts} +2 -2
- package/dist/cjs/define/middleware.cjs +2 -2
- package/dist/cjs/define/middleware.cjs.map +1 -1
- package/dist/cjs/define/middleware.d.cts +10 -8
- package/dist/cjs/define/validators.cjs +1 -1
- package/dist/cjs/define/validators.cjs.map +1 -1
- package/dist/cjs/define/validators.d.cts +1 -1
- package/dist/cjs/index.cjs +6 -28
- package/dist/cjs/index.d.cts +7 -8
- package/dist/cjs/middleware/body-limit.cjs +2 -2
- package/dist/cjs/middleware/body-limit.cjs.map +1 -1
- package/dist/cjs/middleware/compress.cjs +2 -2
- package/dist/cjs/middleware/compress.cjs.map +1 -1
- package/dist/cjs/middleware/cors.cjs +2 -2
- package/dist/cjs/middleware/cors.cjs.map +1 -1
- package/dist/cjs/middleware/csrf.cjs +2 -2
- package/dist/cjs/middleware/csrf.cjs.map +1 -1
- package/dist/cjs/middleware/etag.cjs +2 -2
- package/dist/cjs/middleware/etag.cjs.map +1 -1
- package/dist/cjs/middleware/jwk.cjs +2 -8
- package/dist/cjs/middleware/jwk.cjs.map +1 -1
- package/dist/cjs/middleware/jwt.cjs +2 -8
- package/dist/cjs/middleware/jwt.cjs.map +1 -1
- package/dist/cjs/middleware/secure-headers.cjs +2 -2
- package/dist/cjs/middleware/secure-headers.cjs.map +1 -1
- package/dist/cjs/middleware/timing.cjs +2 -2
- package/dist/cjs/middleware/timing.cjs.map +1 -1
- package/dist/cjs/middleware/wrap-hono.cjs +10 -0
- package/dist/cjs/middleware/wrap-hono.cjs.map +1 -1
- package/dist/cjs/middleware/wrap-hono.d.cts +4 -0
- package/dist/cjs/reply.cjs +8 -19
- package/dist/cjs/reply.d.cts +1 -2
- package/dist/cjs/stream.cjs +8 -31
- package/dist/cjs/stream.d.cts +1 -1
- package/dist/cjs/types/app.d.cts +8 -26
- package/dist/cjs/types/index.d.cts +60 -19
- package/dist/cjs/types/returns.d.cts +8 -11
- package/dist/cjs/types/type-utils.d.cts +8 -7
- package/dist/cjs/types/units.cjs.map +1 -1
- package/dist/cjs/types/units.d.cts +6 -17
- package/dist/esm/builder/app.d.ts +11 -0
- package/dist/esm/builder/app.js +26 -0
- package/dist/esm/builder/app.js.map +1 -0
- package/dist/esm/{constants.js → builder/constants.js} +1 -1
- package/dist/esm/builder/constants.js.map +1 -0
- package/dist/esm/builder/factories.d.ts +15 -0
- package/dist/esm/{factories.js → builder/factories.js} +5 -5
- package/dist/esm/builder/factories.js.map +1 -0
- package/dist/esm/{middleware.d.ts → builder/middleware.d.ts} +1 -1
- package/dist/esm/{middleware.js → builder/middleware.js} +1 -1
- package/dist/esm/builder/middleware.js.map +1 -0
- package/dist/esm/builder/route.d.ts +4 -0
- package/dist/esm/{route.js → builder/route.js} +41 -34
- package/dist/esm/builder/route.js.map +1 -0
- package/dist/{cjs/taser-router.d.cts → esm/builder/router.d.ts} +16 -11
- package/dist/esm/{taser-router.js → builder/router.js} +37 -12
- package/dist/esm/builder/router.js.map +1 -0
- package/dist/esm/{create-context.d.ts → context/create-context.d.ts} +2 -2
- package/dist/esm/{create-context.js → context/create-context.js} +1 -1
- package/dist/esm/context/create-context.js.map +1 -0
- package/dist/esm/define/middleware.d.ts +10 -8
- package/dist/esm/define/middleware.js +2 -2
- package/dist/esm/define/middleware.js.map +1 -1
- package/dist/esm/define/validators.d.ts +1 -1
- package/dist/esm/define/validators.js +1 -1
- package/dist/esm/define/validators.js.map +1 -1
- package/dist/esm/index.d.ts +7 -8
- package/dist/esm/index.js +5 -6
- package/dist/esm/middleware/body-limit.js +2 -2
- package/dist/esm/middleware/body-limit.js.map +1 -1
- package/dist/esm/middleware/compress.js +2 -2
- package/dist/esm/middleware/compress.js.map +1 -1
- package/dist/esm/middleware/cors.js +2 -2
- package/dist/esm/middleware/cors.js.map +1 -1
- package/dist/esm/middleware/csrf.js +2 -2
- package/dist/esm/middleware/csrf.js.map +1 -1
- package/dist/esm/middleware/etag.js +2 -2
- package/dist/esm/middleware/etag.js.map +1 -1
- package/dist/esm/middleware/jwk.js +2 -8
- package/dist/esm/middleware/jwk.js.map +1 -1
- package/dist/esm/middleware/jwt.js +2 -8
- package/dist/esm/middleware/jwt.js.map +1 -1
- package/dist/esm/middleware/secure-headers.js +2 -2
- package/dist/esm/middleware/secure-headers.js.map +1 -1
- package/dist/esm/middleware/timing.js +2 -2
- package/dist/esm/middleware/timing.js.map +1 -1
- package/dist/esm/middleware/wrap-hono.d.ts +4 -0
- package/dist/esm/middleware/wrap-hono.js +10 -1
- package/dist/esm/middleware/wrap-hono.js.map +1 -1
- package/dist/esm/reply.d.ts +1 -2
- package/dist/esm/reply.js +1 -2
- package/dist/esm/stream.d.ts +1 -1
- package/dist/esm/stream.js +1 -2
- package/dist/esm/types/app.d.ts +8 -26
- package/dist/esm/types/index.d.ts +60 -19
- package/dist/esm/types/returns.d.ts +8 -11
- package/dist/esm/types/type-utils.d.ts +8 -7
- package/dist/esm/types/units.d.ts +6 -17
- package/dist/esm/types/units.js.map +1 -1
- package/package.json +3 -3
- package/src/builder/app.ts +39 -0
- package/src/builder/factories.ts +58 -0
- package/src/{middleware.ts → builder/middleware.ts} +2 -2
- package/src/{route.ts → builder/route.ts} +55 -35
- package/src/{taser-router.ts → builder/router.ts} +77 -28
- package/src/{create-context.ts → context/create-context.ts} +2 -2
- package/src/define/middleware.ts +115 -123
- package/src/define/validators.ts +1 -1
- package/src/index.ts +13 -20
- package/src/middleware/body-limit.ts +2 -2
- package/src/middleware/compress.ts +2 -2
- package/src/middleware/cors.ts +2 -2
- package/src/middleware/csrf.ts +2 -2
- package/src/middleware/etag.ts +2 -2
- package/src/middleware/jwk.ts +2 -7
- package/src/middleware/jwt.ts +2 -7
- package/src/middleware/secure-headers.ts +2 -2
- package/src/middleware/timing.ts +2 -2
- package/src/middleware/wrap-hono.ts +13 -0
- package/src/reply.ts +1 -11
- package/src/stream.ts +1 -1
- package/src/types/app.ts +13 -28
- package/src/types/index.ts +126 -22
- package/src/types/returns.ts +9 -78
- package/src/types/type-utils.ts +10 -6
- package/src/types/units.ts +36 -16
- package/dist/cjs/constants.cjs.map +0 -1
- package/dist/cjs/create-context.cjs.map +0 -1
- package/dist/cjs/factories.cjs.map +0 -1
- package/dist/cjs/factories.d.cts +0 -61
- package/dist/cjs/middleware.cjs.map +0 -1
- package/dist/cjs/route.cjs.map +0 -1
- package/dist/cjs/route.d.cts +0 -5
- package/dist/cjs/taser-app.cjs +0 -36
- package/dist/cjs/taser-app.cjs.map +0 -1
- package/dist/cjs/taser-app.d.cts +0 -18
- package/dist/cjs/taser-router.cjs.map +0 -1
- package/dist/esm/constants.js.map +0 -1
- package/dist/esm/create-context.js.map +0 -1
- package/dist/esm/factories.d.ts +0 -61
- package/dist/esm/factories.js.map +0 -1
- package/dist/esm/middleware.js.map +0 -1
- package/dist/esm/route.d.ts +0 -5
- package/dist/esm/route.js.map +0 -1
- package/dist/esm/taser-app.d.ts +0 -18
- package/dist/esm/taser-app.js +0 -35
- package/dist/esm/taser-app.js.map +0 -1
- package/dist/esm/taser-router.js.map +0 -1
- package/src/factories.ts +0 -185
- package/src/taser-app.ts +0 -38
- /package/dist/cjs/{constants.d.cts → builder/constants.d.cts} +0 -0
- /package/dist/esm/{constants.d.ts → builder/constants.d.ts} +0 -0
- /package/src/{constants.ts → builder/constants.ts} +0 -0
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { createTaserCompatHandler, Awaitable } from '@taserjs/router-core';
|
|
2
2
|
import { ReturnsMap } from '../types/returns.js';
|
|
3
|
-
import { AppContext,
|
|
3
|
+
import { AppContext, DefineMiddlewareResult, MiddlewareReturnFromParts, MiddlewareUnit, NextFn, StandaloneMiddlewareContext } from '../types/units.js';
|
|
4
4
|
import { LayoutId, ResolveLayoutMiddlewaresState, ResolveLayoutsState } from '../types/index.js';
|
|
5
5
|
import { Schema } from '../types/schema.js';
|
|
6
|
-
type HonoMiddlewareHandler = Parameters<typeof createTaserCompatHandler>[0];
|
|
7
|
-
type HonoMiddlewareUnit = MiddlewareUnit<MiddlewareReturnFromParts<unknown, unknown, unknown, {}>, {}, null, {}>;
|
|
6
|
+
export type HonoMiddlewareHandler = Parameters<typeof createTaserCompatHandler>[0];
|
|
7
|
+
export type HonoMiddlewareUnit = MiddlewareUnit<MiddlewareReturnFromParts<unknown, unknown, unknown, {}>, {}, null, {}>;
|
|
8
8
|
export type DefineMiddlewareOptions<TState = unknown, TRequires = {}, TQuery = unknown, TParams = unknown, TBody = unknown, TReturns extends ReturnsMap = {}, TQueryIn = unknown, TParamsIn = unknown, TBodyIn = unknown, TAppContext extends Record<string, unknown> = AppContext, R = unknown> = {
|
|
9
9
|
query?: Schema<TQuery, TQueryIn>;
|
|
10
10
|
params?: Schema<TParams, TParamsIn>;
|
|
@@ -26,8 +26,10 @@ export type MultiScopedMiddlewareOptions<Layouts extends readonly LayoutId[], TS
|
|
|
26
26
|
returns?: TReturns;
|
|
27
27
|
handler: (ctx: StandaloneMiddlewareContext<TQuery, TParams, TBody, TAppContext, ResolveLayoutsState<Layouts> & TRequires>, next: NextFn<NoInfer<TState>>) => Awaitable<R>;
|
|
28
28
|
};
|
|
29
|
-
export
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
29
|
+
export interface DefineMiddlewareFn<TAppContext extends Record<string, unknown> = AppContext> {
|
|
30
|
+
(middleware: HonoMiddlewareHandler): HonoMiddlewareUnit;
|
|
31
|
+
<const Layout extends LayoutId, TState = unknown, TRequires = {}, TQuery = unknown, TParams = unknown, TBody = unknown, TReturns extends ReturnsMap = {}, TQueryIn = unknown, TParamsIn = unknown, TBodyIn = unknown, R = unknown>(layout: Layout, options: ScopedMiddlewareOptions<Layout, TState, TRequires, TQuery, TParams, TBody, TReturns, TQueryIn, TParamsIn, TBodyIn, TAppContext, R>): DefineMiddlewareResult<TQuery, TParams, TBody, TState, R, TQueryIn, TParamsIn, TBodyIn, TReturns, Layout, TRequires>;
|
|
32
|
+
<const Layouts extends readonly [LayoutId, ...LayoutId[]], TState = unknown, TRequires = {}, TQuery = unknown, TParams = unknown, TBody = unknown, TReturns extends ReturnsMap = {}, TQueryIn = unknown, TParamsIn = unknown, TBodyIn = unknown, R = unknown>(layouts: Layouts, options: MultiScopedMiddlewareOptions<Layouts, TState, TRequires, TQuery, TParams, TBody, TReturns, TQueryIn, TParamsIn, TBodyIn, TAppContext, R>): DefineMiddlewareResult<TQuery, TParams, TBody, TState, R, TQueryIn, TParamsIn, TBodyIn, TReturns, Layouts, TRequires>;
|
|
33
|
+
<TState = unknown, TRequires = {}, TQuery = unknown, TParams = unknown, TBody = unknown, TReturns extends ReturnsMap = {}, TQueryIn = unknown, TParamsIn = unknown, TBodyIn = unknown, R = unknown>(options: DefineMiddlewareOptions<TState, TRequires, TQuery, TParams, TBody, TReturns, TQueryIn, TParamsIn, TBodyIn, TAppContext, R>): DefineMiddlewareResult<TQuery, TParams, TBody, TState, R, TQueryIn, TParamsIn, TBodyIn, TReturns, null, TRequires>;
|
|
34
|
+
}
|
|
35
|
+
export declare const defineMiddleware: DefineMiddlewareFn<AppContext>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createTaserCompatHandler } from "@taserjs/router-core";
|
|
2
2
|
//#region src/define/middleware.ts
|
|
3
|
-
function defineMiddleware(first, second) {
|
|
3
|
+
var defineMiddleware = function defineMiddleware(first, second) {
|
|
4
4
|
if (typeof first === "string" || Array.isArray(first)) {
|
|
5
5
|
const options = second;
|
|
6
6
|
return {
|
|
@@ -20,7 +20,7 @@ function defineMiddleware(first, second) {
|
|
|
20
20
|
__middlewareAcc: void 0,
|
|
21
21
|
...options.returns ? { __returns: options.returns } : {}
|
|
22
22
|
};
|
|
23
|
-
}
|
|
23
|
+
};
|
|
24
24
|
//#endregion
|
|
25
25
|
export { defineMiddleware };
|
|
26
26
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"middleware.js","names":[],"sources":["../../../src/define/middleware.ts"],"sourcesContent":["import { createTaserCompatHandler, type Awaitable } from \"@taserjs/router-core\";\n\nimport type { ReturnsMap } from \"../types/returns.js\";\nimport type {\n AppContext,\n
|
|
1
|
+
{"version":3,"file":"middleware.js","names":[],"sources":["../../../src/define/middleware.ts"],"sourcesContent":["import { createTaserCompatHandler, type Awaitable } from \"@taserjs/router-core\";\n\nimport type { ReturnsMap } from \"../types/returns.js\";\nimport type {\n AppContext,\n DefineMiddlewareResult,\n MiddlewareReturnFromParts,\n MiddlewareUnit,\n NextFn,\n StandaloneMiddlewareContext,\n} from \"../types/units.js\";\nimport type {\n LayoutId,\n ResolveLayoutMiddlewaresState,\n ResolveLayoutsState,\n} from \"../types/index.js\";\nimport type { Schema } from \"../types/schema.js\";\n\nexport type HonoMiddlewareHandler = Parameters<typeof createTaserCompatHandler>[0];\n\nexport type HonoMiddlewareUnit = MiddlewareUnit<\n MiddlewareReturnFromParts<unknown, unknown, unknown, {}>,\n {},\n null,\n {}\n>;\n\nexport type DefineMiddlewareOptions<\n TState = unknown,\n TRequires = {},\n TQuery = unknown,\n TParams = unknown,\n TBody = unknown,\n TReturns extends ReturnsMap = {},\n TQueryIn = unknown,\n TParamsIn = unknown,\n TBodyIn = unknown,\n TAppContext extends Record<string, unknown> = AppContext,\n R = unknown,\n> = {\n query?: Schema<TQuery, TQueryIn>;\n params?: Schema<TParams, TParamsIn>;\n body?: Schema<TBody, TBodyIn>;\n returns?: TReturns;\n handler: (\n ctx: StandaloneMiddlewareContext<TQuery, TParams, TBody, TAppContext, TRequires>,\n next: NextFn<NoInfer<TState>>,\n ) => Awaitable<R>;\n};\n\nexport type ScopedMiddlewareOptions<\n Layout extends LayoutId,\n TState = unknown,\n TRequires = {},\n TQuery = unknown,\n TParams = unknown,\n TBody = unknown,\n TReturns extends ReturnsMap = {},\n TQueryIn = unknown,\n TParamsIn = unknown,\n TBodyIn = unknown,\n TAppContext extends Record<string, unknown> = AppContext,\n R = unknown,\n> = {\n query?: Schema<TQuery, TQueryIn>;\n params?: Schema<TParams, TParamsIn>;\n body?: Schema<TBody, TBodyIn>;\n returns?: TReturns;\n handler: (\n ctx: StandaloneMiddlewareContext<\n TQuery,\n TParams,\n TBody,\n TAppContext,\n ResolveLayoutMiddlewaresState<Layout> & TRequires\n >,\n next: NextFn<NoInfer<TState>>,\n ) => Awaitable<R>;\n};\n\nexport type MultiScopedMiddlewareOptions<\n Layouts extends readonly LayoutId[],\n TState = unknown,\n TRequires = {},\n TQuery = unknown,\n TParams = unknown,\n TBody = unknown,\n TReturns extends ReturnsMap = {},\n TQueryIn = unknown,\n TParamsIn = unknown,\n TBodyIn = unknown,\n TAppContext extends Record<string, unknown> = AppContext,\n R = unknown,\n> = {\n query?: Schema<TQuery, TQueryIn>;\n params?: Schema<TParams, TParamsIn>;\n body?: Schema<TBody, TBodyIn>;\n returns?: TReturns;\n handler: (\n ctx: StandaloneMiddlewareContext<\n TQuery,\n TParams,\n TBody,\n TAppContext,\n ResolveLayoutsState<Layouts> & TRequires\n >,\n next: NextFn<NoInfer<TState>>,\n ) => Awaitable<R>;\n};\n\nexport interface DefineMiddlewareFn<TAppContext extends Record<string, unknown> = AppContext> {\n (middleware: HonoMiddlewareHandler): HonoMiddlewareUnit;\n\n <\n const Layout extends LayoutId,\n TState = unknown,\n TRequires = {},\n TQuery = unknown,\n TParams = unknown,\n TBody = unknown,\n TReturns extends ReturnsMap = {},\n TQueryIn = unknown,\n TParamsIn = unknown,\n TBodyIn = unknown,\n R = unknown,\n >(\n layout: Layout,\n options: ScopedMiddlewareOptions<\n Layout,\n TState,\n TRequires,\n TQuery,\n TParams,\n TBody,\n TReturns,\n TQueryIn,\n TParamsIn,\n TBodyIn,\n TAppContext,\n R\n >,\n ): DefineMiddlewareResult<\n TQuery,\n TParams,\n TBody,\n TState,\n R,\n TQueryIn,\n TParamsIn,\n TBodyIn,\n TReturns,\n Layout,\n TRequires\n >;\n\n <\n const Layouts extends readonly [LayoutId, ...LayoutId[]],\n TState = unknown,\n TRequires = {},\n TQuery = unknown,\n TParams = unknown,\n TBody = unknown,\n TReturns extends ReturnsMap = {},\n TQueryIn = unknown,\n TParamsIn = unknown,\n TBodyIn = unknown,\n R = unknown,\n >(\n layouts: Layouts,\n options: MultiScopedMiddlewareOptions<\n Layouts,\n TState,\n TRequires,\n TQuery,\n TParams,\n TBody,\n TReturns,\n TQueryIn,\n TParamsIn,\n TBodyIn,\n TAppContext,\n R\n >,\n ): DefineMiddlewareResult<\n TQuery,\n TParams,\n TBody,\n TState,\n R,\n TQueryIn,\n TParamsIn,\n TBodyIn,\n TReturns,\n Layouts,\n TRequires\n >;\n\n <\n TState = unknown,\n TRequires = {},\n TQuery = unknown,\n TParams = unknown,\n TBody = unknown,\n TReturns extends ReturnsMap = {},\n TQueryIn = unknown,\n TParamsIn = unknown,\n TBodyIn = unknown,\n R = unknown,\n >(\n options: DefineMiddlewareOptions<\n TState,\n TRequires,\n TQuery,\n TParams,\n TBody,\n TReturns,\n TQueryIn,\n TParamsIn,\n TBodyIn,\n TAppContext,\n R\n >,\n ): DefineMiddlewareResult<\n TQuery,\n TParams,\n TBody,\n TState,\n R,\n TQueryIn,\n TParamsIn,\n TBodyIn,\n TReturns,\n null,\n TRequires\n >;\n}\n\nexport const defineMiddleware: DefineMiddlewareFn<AppContext> = function defineMiddleware(\n first: any,\n second?: any,\n): any {\n if (typeof first === \"string\" || Array.isArray(first)) {\n const options = second!;\n const unit = {\n ...options,\n __middlewareAcc: undefined as unknown,\n ...(options?.returns ? { __returns: options.returns } : {}),\n __requiredLayouts: first,\n };\n return unit;\n }\n\n if (typeof first === \"function\") {\n const honoMiddleware = first as HonoMiddlewareHandler;\n return defineMiddleware({\n handler: (ctx: unknown, next: (state?: Record<string, unknown>) => unknown) =>\n createTaserCompatHandler(honoMiddleware)(ctx, next),\n });\n }\n\n const options = first as DefineMiddlewareOptions<\n any,\n any,\n any,\n any,\n any,\n any,\n any,\n any,\n any,\n any,\n any\n >;\n const unit = {\n ...options,\n __middlewareAcc: undefined as unknown,\n ...(options.returns ? { __returns: options.returns } : {}),\n };\n\n return unit;\n};\n"],"mappings":";;AA6OA,IAAa,mBAAmD,SAAS,iBACvE,OACA,QACK;CACL,IAAI,OAAO,UAAU,YAAY,MAAM,QAAQ,KAAK,GAAG;EACrD,MAAM,UAAU;EAOhB,OAAO;GALL,GAAG;GACH,iBAAiB,KAAA;GACjB,GAAI,SAAS,UAAU,EAAE,WAAW,QAAQ,QAAQ,IAAI,CAAC;GACzD,mBAAmB;EAEd;CACT;CAEA,IAAI,OAAO,UAAU,YAAY;EAC/B,MAAM,iBAAiB;EACvB,OAAO,iBAAiB,EACtB,UAAU,KAAc,SACtB,yBAAyB,cAAc,CAAC,CAAC,KAAK,IAAI,EACtD,CAAC;CACH;CAEA,MAAM,UAAU;CAmBhB,OAAO;EALL,GAAG;EACH,iBAAiB,KAAA;EACjB,GAAI,QAAQ,UAAU,EAAE,WAAW,QAAQ,QAAQ,IAAI,CAAC;CAGnD;AACT"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validators.js","names":[],"sources":["../../../src/define/validators.ts"],"sourcesContent":["import type { Schema } from \"../types/schema.js\";\nimport { SCHEMA_KEYS, type SchemaKey } from \"../constants.js\";\n\nexport type SchemaValidators = {\n query?: Schema<unknown>;\n params?: Schema<unknown>;\n body?: Schema<unknown>;\n};\n\nexport function pickDefinedSchemas(\n source: SchemaValidators,\n keyMap?: Partial<Record<SchemaKey, string>>,\n): Record<string, Schema<unknown>> {\n const result: Record<string, Schema<unknown>> = {};\n for (const key of SCHEMA_KEYS) {\n const value = source[key];\n if (value !== undefined) {\n result[keyMap?.[key] ?? key] = value;\n }\n }\n return result;\n}\n"],"mappings":";;AASA,SAAgB,mBACd,QACA,QACiC;CACjC,MAAM,SAA0C,CAAC;CACjD,KAAK,MAAM,OAAO,aAAa;EAC7B,MAAM,QAAQ,OAAO;EACrB,IAAI,UAAU,KAAA,GACZ,OAAO,SAAS,QAAQ,OAAO;CAEnC;CACA,OAAO;AACT"}
|
|
1
|
+
{"version":3,"file":"validators.js","names":[],"sources":["../../../src/define/validators.ts"],"sourcesContent":["import type { Schema } from \"../types/schema.js\";\nimport { SCHEMA_KEYS, type SchemaKey } from \"../builder/constants.js\";\n\nexport type SchemaValidators = {\n query?: Schema<unknown>;\n params?: Schema<unknown>;\n body?: Schema<unknown>;\n};\n\nexport function pickDefinedSchemas(\n source: SchemaValidators,\n keyMap?: Partial<Record<SchemaKey, string>>,\n): Record<string, Schema<unknown>> {\n const result: Record<string, Schema<unknown>> = {};\n for (const key of SCHEMA_KEYS) {\n const value = source[key];\n if (value !== undefined) {\n result[keyMap?.[key] ?? key] = value;\n }\n }\n return result;\n}\n"],"mappings":";;AASA,SAAgB,mBACd,QACA,QACiC;CACjC,MAAM,SAA0C,CAAC;CACjD,KAAK,MAAM,OAAO,aAAa;EAC7B,MAAM,QAAQ,OAAO;EACrB,IAAI,UAAU,KAAA,GACZ,OAAO,SAAS,QAAQ,OAAO;CAEnC;CACA,OAAO;AACT"}
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
export type { RouterRegister } from './register.js';
|
|
2
|
-
export type { InferInput, InferOutput, Method, PathParams, ReturnsMap, RoutePath, Schema, Simplify, } from './types/index.js';
|
|
3
|
-
export type { ContextDefinition,
|
|
4
|
-
export {
|
|
5
|
-
export type {
|
|
6
|
-
export {
|
|
7
|
-
export {
|
|
8
|
-
export {
|
|
9
|
-
export { createContext } from './create-context.js';
|
|
2
|
+
export type { HttpMethod, InferInput, InferOutput, InferRouteContext, InferRouteInput, InferRouteOutput, Method, MiddlewareDefinition, PathParams, ReturnsMap, RouteDefinition, RouteExport, RoutePath, Schema, Simplify, StatusCode, } from './types/index.js';
|
|
3
|
+
export type { ContextDefinition, CreateTaserAppOptions, InferAppContext, InferAppManifest, OnErrorOptions, RouteManifestShape, } from './types/app.js';
|
|
4
|
+
export { ValidationError, validationErrorSchema } from '@taserjs/router-utils';
|
|
5
|
+
export type { ResponseValidationFailureHandler, SuccessStatusCode } from '@taserjs/router-utils';
|
|
6
|
+
export { createTaserApp, TaserRouter } from './builder/router.js';
|
|
7
|
+
export { TaserApp } from './builder/app.js';
|
|
8
|
+
export { createContext } from './context/create-context.js';
|
|
10
9
|
export { defineHandler } from './define/handler.js';
|
|
11
10
|
export { defineMiddleware } from './define/middleware.js';
|
|
12
11
|
export type { TaserCookieJar, TaserHeaders } from '@taserjs/router-core';
|
package/dist/esm/index.js
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import { createAllRoute, createAnyRoute } from "./factories.js";
|
|
2
1
|
import { defineHandler } from "./define/handler.js";
|
|
3
|
-
import { TaserApp, TaserNativeBound } from "./taser-app.js";
|
|
4
|
-
import { TaserRouter, createTaserApp } from "./taser-router.js";
|
|
5
|
-
import { createContext } from "./create-context.js";
|
|
6
2
|
import { defineMiddleware } from "./define/middleware.js";
|
|
7
|
-
import {
|
|
8
|
-
|
|
3
|
+
import { TaserApp } from "./builder/app.js";
|
|
4
|
+
import { TaserRouter, createTaserApp } from "./builder/router.js";
|
|
5
|
+
import { createContext } from "./context/create-context.js";
|
|
6
|
+
import { ValidationError, validationErrorSchema } from "@taserjs/router-utils";
|
|
7
|
+
export { TaserApp, TaserRouter, ValidationError, createContext, createTaserApp, defineHandler, defineMiddleware, validationErrorSchema };
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { wrapHonoMiddleware } from "./wrap-hono.js";
|
|
2
2
|
import { bodyLimit as bodyLimit$1 } from "hono/body-limit";
|
|
3
3
|
//#region src/middleware/body-limit.ts
|
|
4
|
-
var
|
|
4
|
+
var wrapped = wrapHonoMiddleware(bodyLimit$1);
|
|
5
5
|
function bodyLimit(...args) {
|
|
6
|
-
return
|
|
6
|
+
return wrapped(...args);
|
|
7
7
|
}
|
|
8
8
|
//#endregion
|
|
9
9
|
export { bodyLimit };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"body-limit.js","names":[],"sources":["../../../src/middleware/body-limit.ts"],"sourcesContent":["import { bodyLimit as honoBodyLimit } from \"hono/body-limit\";\n\nimport { wrapHonoMiddleware } from \"./wrap-hono.js\";\n\nconst
|
|
1
|
+
{"version":3,"file":"body-limit.js","names":[],"sources":["../../../src/middleware/body-limit.ts"],"sourcesContent":["import { bodyLimit as honoBodyLimit } from \"hono/body-limit\";\n\nimport { wrapHonoMiddleware } from \"./wrap-hono.js\";\n\nconst wrapped = wrapHonoMiddleware(honoBodyLimit);\n\nexport function bodyLimit(...args: Parameters<typeof honoBodyLimit>) {\n return wrapped(...args);\n}\n\nexport type BodyLimitOptions = Parameters<typeof honoBodyLimit>[0];\n"],"mappings":";;;AAIA,IAAM,UAAU,mBAAmB,WAAa;AAEhD,SAAgB,UAAU,GAAG,MAAwC;CACnE,OAAO,QAAQ,GAAG,IAAI;AACxB"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { wrapHonoMiddleware } from "./wrap-hono.js";
|
|
2
2
|
import { compress as compress$1 } from "hono/compress";
|
|
3
3
|
//#region src/middleware/compress.ts
|
|
4
|
-
var
|
|
4
|
+
var wrapped = wrapHonoMiddleware(compress$1);
|
|
5
5
|
function compress(...args) {
|
|
6
|
-
return
|
|
6
|
+
return wrapped(...args);
|
|
7
7
|
}
|
|
8
8
|
//#endregion
|
|
9
9
|
export { compress };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compress.js","names":[],"sources":["../../../src/middleware/compress.ts"],"sourcesContent":["import { compress as honoCompress } from \"hono/compress\";\n\nimport { wrapHonoMiddleware } from \"./wrap-hono.js\";\n\nconst
|
|
1
|
+
{"version":3,"file":"compress.js","names":[],"sources":["../../../src/middleware/compress.ts"],"sourcesContent":["import { compress as honoCompress } from \"hono/compress\";\n\nimport { wrapHonoMiddleware } from \"./wrap-hono.js\";\n\nconst wrapped = wrapHonoMiddleware(honoCompress);\n\nexport function compress(...args: Parameters<typeof honoCompress>) {\n return wrapped(...args);\n}\n\nexport type CompressOptions = NonNullable<Parameters<typeof honoCompress>[0]>;\n"],"mappings":";;;AAIA,IAAM,UAAU,mBAAmB,UAAY;AAE/C,SAAgB,SAAS,GAAG,MAAuC;CACjE,OAAO,QAAQ,GAAG,IAAI;AACxB"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { wrapHonoMiddleware } from "./wrap-hono.js";
|
|
2
2
|
import { cors as cors$1 } from "hono/cors";
|
|
3
3
|
//#region src/middleware/cors.ts
|
|
4
|
-
var
|
|
4
|
+
var wrapped = wrapHonoMiddleware(cors$1);
|
|
5
5
|
function cors(...args) {
|
|
6
|
-
return
|
|
6
|
+
return wrapped(...args);
|
|
7
7
|
}
|
|
8
8
|
//#endregion
|
|
9
9
|
export { cors };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cors.js","names":[],"sources":["../../../src/middleware/cors.ts"],"sourcesContent":["import { cors as honoCors } from \"hono/cors\";\n\nimport { wrapHonoMiddleware } from \"./wrap-hono.js\";\n\nconst
|
|
1
|
+
{"version":3,"file":"cors.js","names":[],"sources":["../../../src/middleware/cors.ts"],"sourcesContent":["import { cors as honoCors } from \"hono/cors\";\n\nimport { wrapHonoMiddleware } from \"./wrap-hono.js\";\n\nconst wrapped = wrapHonoMiddleware(honoCors);\n\nexport function cors(...args: Parameters<typeof honoCors>) {\n return wrapped(...args);\n}\n\nexport type CorsOptions = NonNullable<Parameters<typeof honoCors>[0]>;\n"],"mappings":";;;AAIA,IAAM,UAAU,mBAAmB,MAAQ;AAE3C,SAAgB,KAAK,GAAG,MAAmC;CACzD,OAAO,QAAQ,GAAG,IAAI;AACxB"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { wrapHonoMiddleware } from "./wrap-hono.js";
|
|
2
2
|
import { csrf as csrf$1 } from "hono/csrf";
|
|
3
3
|
//#region src/middleware/csrf.ts
|
|
4
|
-
var
|
|
4
|
+
var wrapped = wrapHonoMiddleware(csrf$1);
|
|
5
5
|
function csrf(...args) {
|
|
6
|
-
return
|
|
6
|
+
return wrapped(...args);
|
|
7
7
|
}
|
|
8
8
|
//#endregion
|
|
9
9
|
export { csrf };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"csrf.js","names":[],"sources":["../../../src/middleware/csrf.ts"],"sourcesContent":["import { csrf as honoCsrf } from \"hono/csrf\";\n\nimport { wrapHonoMiddleware } from \"./wrap-hono.js\";\n\nconst
|
|
1
|
+
{"version":3,"file":"csrf.js","names":[],"sources":["../../../src/middleware/csrf.ts"],"sourcesContent":["import { csrf as honoCsrf } from \"hono/csrf\";\n\nimport { wrapHonoMiddleware } from \"./wrap-hono.js\";\n\nconst wrapped = wrapHonoMiddleware(honoCsrf);\n\nexport function csrf(...args: Parameters<typeof honoCsrf>) {\n return wrapped(...args);\n}\n\nexport type CsrfOptions = NonNullable<Parameters<typeof honoCsrf>[0]>;\n"],"mappings":";;;AAIA,IAAM,UAAU,mBAAmB,MAAQ;AAE3C,SAAgB,KAAK,GAAG,MAAmC;CACzD,OAAO,QAAQ,GAAG,IAAI;AACxB"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { wrapHonoMiddleware } from "./wrap-hono.js";
|
|
2
2
|
import { etag as etag$1 } from "hono/etag";
|
|
3
3
|
//#region src/middleware/etag.ts
|
|
4
|
-
var
|
|
4
|
+
var wrapped = wrapHonoMiddleware(etag$1);
|
|
5
5
|
function etag(...args) {
|
|
6
|
-
return
|
|
6
|
+
return wrapped(...args);
|
|
7
7
|
}
|
|
8
8
|
//#endregion
|
|
9
9
|
export { etag };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"etag.js","names":[],"sources":["../../../src/middleware/etag.ts"],"sourcesContent":["import { etag as honoEtag } from \"hono/etag\";\n\nimport { wrapHonoMiddleware } from \"./wrap-hono.js\";\n\nconst
|
|
1
|
+
{"version":3,"file":"etag.js","names":[],"sources":["../../../src/middleware/etag.ts"],"sourcesContent":["import { etag as honoEtag } from \"hono/etag\";\n\nimport { wrapHonoMiddleware } from \"./wrap-hono.js\";\n\nconst wrapped = wrapHonoMiddleware(honoEtag);\n\nexport function etag(...args: Parameters<typeof honoEtag>) {\n return wrapped(...args);\n}\n\nexport type EtagOptions = NonNullable<Parameters<typeof honoEtag>[0]>;\n"],"mappings":";;;AAIA,IAAM,UAAU,mBAAmB,MAAQ;AAE3C,SAAgB,KAAK,GAAG,MAAmC;CACzD,OAAO,QAAQ,GAAG,IAAI;AACxB"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { defineMiddleware } from "../define/middleware.js";
|
|
2
|
-
import {
|
|
2
|
+
import { extractJwtPayload } from "./wrap-hono.js";
|
|
3
3
|
import { jwk as jwk$1 } from "hono/jwk";
|
|
4
4
|
//#region src/middleware/jwk.ts
|
|
5
5
|
function assertJwksScheme(jwksUri, allowInsecure) {
|
|
@@ -17,13 +17,7 @@ function jwk(options, init) {
|
|
|
17
17
|
const jwksUri = options.jwks_uri;
|
|
18
18
|
if (typeof jwksUri === "string") assertJwksScheme(jwksUri, options.allowInsecure ?? false);
|
|
19
19
|
const { allowInsecure: _allowInsecure, ...honoOptions } = options;
|
|
20
|
-
|
|
21
|
-
return defineMiddleware({ handler: (ctx, next) => {
|
|
22
|
-
return createTaserCompatHandler(honoMw)(ctx, async () => {
|
|
23
|
-
const payload = ctx.var.jwtPayload;
|
|
24
|
-
return next({ jwtPayload: payload });
|
|
25
|
-
});
|
|
26
|
-
} });
|
|
20
|
+
return defineMiddleware({ handler: extractJwtPayload(jwk$1(honoOptions, init?.headers !== void 0 ? { headers: init.headers } : void 0)) });
|
|
27
21
|
}
|
|
28
22
|
//#endregion
|
|
29
23
|
export { jwk };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jwk.js","names":[],"sources":["../../../src/middleware/jwk.ts"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"file":"jwk.js","names":[],"sources":["../../../src/middleware/jwk.ts"],"sourcesContent":["import type { MiddlewareHandler } from \"hono\";\nimport { jwk as honoJwk } from \"hono/jwk\";\n\nimport { defineMiddleware } from \"../define/middleware.js\";\nimport type { JwtMiddlewareUnit, JwtPayloadState } from \"./jwt.js\";\nimport { extractJwtPayload } from \"./wrap-hono.js\";\n\nexport type JwkOptions = Parameters<typeof honoJwk>[0];\n\nexport type JwkRequestInit = Pick<RequestInit, \"headers\">;\n\nexport type JwkMiddlewareOptions = JwkOptions & {\n /** Allow `http://` JWKS URLs (local dev). Default false — requires `https://`. */\n allowInsecure?: boolean;\n};\n\nfunction assertJwksScheme(jwksUri: string, allowInsecure: boolean): void {\n const scheme = new URL(jwksUri).protocol.replace(\":\", \"\");\n if (scheme === \"https\") {\n return;\n }\n if (scheme === \"http\" && allowInsecure) {\n return;\n }\n throw new Error(`JWKS URL must use https:// (or http:// with allowInsecure: true): \"${jwksUri}\"`);\n}\n\n/**\n * JWK auth middleware. Invalid or missing tokens return **401** (Hono).\n * Successfully decoded payload is placed in `ctx.state.jwtPayload`.\n * Static `jwks_uri` must use HTTPS unless `allowInsecure: true`.\n */\nexport function jwk<TPayload = Record<string, unknown>>(\n options: JwkMiddlewareOptions,\n init?: JwkRequestInit,\n): JwtMiddlewareUnit<TPayload> {\n const jwksUri = options.jwks_uri;\n if (typeof jwksUri === \"string\") {\n assertJwksScheme(jwksUri, options.allowInsecure ?? false);\n }\n\n const { allowInsecure: _allowInsecure, ...honoOptions } = options;\n const safeInit = init?.headers !== undefined ? { headers: init.headers } : undefined;\n const honoMw: MiddlewareHandler = honoJwk(honoOptions, safeInit);\n\n return defineMiddleware<JwtPayloadState<TPayload>>({\n handler: extractJwtPayload<TPayload>(honoMw),\n });\n}\n"],"mappings":";;;;AAgBA,SAAS,iBAAiB,SAAiB,eAA8B;CACvE,MAAM,SAAS,IAAI,IAAI,OAAO,CAAC,CAAC,SAAS,QAAQ,KAAK,EAAE;CACxD,IAAI,WAAW,SACb;CAEF,IAAI,WAAW,UAAU,eACvB;CAEF,MAAM,IAAI,MAAM,sEAAsE,QAAQ,EAAE;AAClG;;;;;;AAOA,SAAgB,IACd,SACA,MAC6B;CAC7B,MAAM,UAAU,QAAQ;CACxB,IAAI,OAAO,YAAY,UACrB,iBAAiB,SAAS,QAAQ,iBAAiB,KAAK;CAG1D,MAAM,EAAE,eAAe,gBAAgB,GAAG,gBAAgB;CAI1D,OAAO,iBAA4C,EACjD,SAAS,kBAHuB,MAAQ,aADzB,MAAM,YAAY,KAAA,IAAY,EAAE,SAAS,KAAK,QAAQ,IAAI,KAAA,CAIpC,CAAM,EAC7C,CAAC;AACH"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { defineMiddleware } from "../define/middleware.js";
|
|
2
|
-
import {
|
|
2
|
+
import { extractJwtPayload } from "./wrap-hono.js";
|
|
3
3
|
import { jwt as jwt$1 } from "hono/jwt";
|
|
4
4
|
//#region src/middleware/jwt.ts
|
|
5
5
|
/**
|
|
@@ -7,13 +7,7 @@ import { jwt as jwt$1 } from "hono/jwt";
|
|
|
7
7
|
* Successfully decoded payload is placed in `ctx.state.jwtPayload`.
|
|
8
8
|
*/
|
|
9
9
|
function jwt(options) {
|
|
10
|
-
|
|
11
|
-
return defineMiddleware({ handler: (ctx, next) => {
|
|
12
|
-
return createTaserCompatHandler(honoMw)(ctx, async () => {
|
|
13
|
-
const payload = ctx.var.jwtPayload;
|
|
14
|
-
return next({ jwtPayload: payload });
|
|
15
|
-
});
|
|
16
|
-
} });
|
|
10
|
+
return defineMiddleware({ handler: extractJwtPayload(jwt$1(options)) });
|
|
17
11
|
}
|
|
18
12
|
//#endregion
|
|
19
13
|
export { jwt };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jwt.js","names":[],"sources":["../../../src/middleware/jwt.ts"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"file":"jwt.js","names":[],"sources":["../../../src/middleware/jwt.ts"],"sourcesContent":["import type { MiddlewareHandler } from \"hono\";\nimport { jwt as honoJwt } from \"hono/jwt\";\n\nimport { defineMiddleware } from \"../define/middleware.js\";\nimport type { MiddlewareReturnFromParts, MiddlewareUnit } from \"../types/units.js\";\nimport { extractJwtPayload } from \"./wrap-hono.js\";\n\nexport type JwtPayloadState<TPayload> = {\n jwtPayload: TPayload;\n};\n\nexport type JwtMiddlewareUnit<TPayload> = MiddlewareUnit<\n MiddlewareReturnFromParts<unknown, unknown, unknown, JwtPayloadState<TPayload>>\n>;\n\nexport type JwtOptions = Parameters<typeof honoJwt>[0];\n\n/**\n * JWT auth middleware. Invalid or missing tokens return **401** (Hono).\n * Successfully decoded payload is placed in `ctx.state.jwtPayload`.\n */\nexport function jwt<TPayload = Record<string, unknown>>(\n options: JwtOptions,\n): JwtMiddlewareUnit<TPayload> {\n const honoMw: MiddlewareHandler = honoJwt(options);\n return defineMiddleware<JwtPayloadState<TPayload>>({\n handler: extractJwtPayload<TPayload>(honoMw),\n });\n}\n"],"mappings":";;;;;;;;AAqBA,SAAgB,IACd,SAC6B;CAE7B,OAAO,iBAA4C,EACjD,SAAS,kBAFuB,MAAQ,OAEH,CAAM,EAC7C,CAAC;AACH"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { wrapHonoMiddleware } from "./wrap-hono.js";
|
|
2
2
|
import { secureHeaders as secureHeaders$1 } from "hono/secure-headers";
|
|
3
3
|
//#region src/middleware/secure-headers.ts
|
|
4
|
-
var
|
|
4
|
+
var wrapped = wrapHonoMiddleware(secureHeaders$1);
|
|
5
5
|
function secureHeaders(...args) {
|
|
6
|
-
return
|
|
6
|
+
return wrapped(...args);
|
|
7
7
|
}
|
|
8
8
|
//#endregion
|
|
9
9
|
export { secureHeaders };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"secure-headers.js","names":[],"sources":["../../../src/middleware/secure-headers.ts"],"sourcesContent":["import { secureHeaders as honoSecureHeaders } from \"hono/secure-headers\";\n\nimport { wrapHonoMiddleware } from \"./wrap-hono.js\";\n\nconst
|
|
1
|
+
{"version":3,"file":"secure-headers.js","names":[],"sources":["../../../src/middleware/secure-headers.ts"],"sourcesContent":["import { secureHeaders as honoSecureHeaders } from \"hono/secure-headers\";\n\nimport { wrapHonoMiddleware } from \"./wrap-hono.js\";\n\nconst wrapped = wrapHonoMiddleware(honoSecureHeaders);\n\nexport function secureHeaders(...args: Parameters<typeof honoSecureHeaders>) {\n return wrapped(...args);\n}\n\nexport type SecureHeadersOptions = NonNullable<Parameters<typeof honoSecureHeaders>[0]>;\n"],"mappings":";;;AAIA,IAAM,UAAU,mBAAmB,eAAiB;AAEpD,SAAgB,cAAc,GAAG,MAA4C;CAC3E,OAAO,QAAQ,GAAG,IAAI;AACxB"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { wrapHonoMiddleware } from "./wrap-hono.js";
|
|
2
2
|
import { timing as timing$1 } from "hono/timing";
|
|
3
3
|
//#region src/middleware/timing.ts
|
|
4
|
-
var
|
|
4
|
+
var wrapped = wrapHonoMiddleware(timing$1);
|
|
5
5
|
function timing(...args) {
|
|
6
|
-
return
|
|
6
|
+
return wrapped(...args);
|
|
7
7
|
}
|
|
8
8
|
//#endregion
|
|
9
9
|
export { timing };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timing.js","names":[],"sources":["../../../src/middleware/timing.ts"],"sourcesContent":["import { timing as honoTiming } from \"hono/timing\";\n\nimport { wrapHonoMiddleware } from \"./wrap-hono.js\";\n\nconst
|
|
1
|
+
{"version":3,"file":"timing.js","names":[],"sources":["../../../src/middleware/timing.ts"],"sourcesContent":["import { timing as honoTiming } from \"hono/timing\";\n\nimport { wrapHonoMiddleware } from \"./wrap-hono.js\";\n\nconst wrapped = wrapHonoMiddleware(honoTiming);\n\nexport function timing(...args: Parameters<typeof honoTiming>) {\n return wrapped(...args);\n}\n\nexport type TimingOptions = NonNullable<Parameters<typeof honoTiming>[0]>;\n"],"mappings":";;;AAIA,IAAM,UAAU,mBAAmB,QAAU;AAE7C,SAAgB,OAAO,GAAG,MAAqC;CAC7D,OAAO,QAAQ,GAAG,IAAI;AACxB"}
|
|
@@ -1,3 +1,7 @@
|
|
|
1
1
|
import { MiddlewareHandler } from 'hono';
|
|
2
2
|
import { MiddlewareReturnFromParts, MiddlewareUnit } from '../types/units.js';
|
|
3
3
|
export declare function wrapHonoMiddleware<F extends (...args: never[]) => MiddlewareHandler>(honoFactory: F): (...args: Parameters<F>) => MiddlewareUnit<MiddlewareReturnFromParts<unknown, unknown, unknown, {}>>;
|
|
4
|
+
/** Extracts the jwtPayload from Hono's variable bag and forwards it into Taser's state via next(). */
|
|
5
|
+
export declare function extractJwtPayload<TPayload>(honoMw: MiddlewareHandler): (ctx: unknown, next: (state: {
|
|
6
|
+
jwtPayload: TPayload;
|
|
7
|
+
}) => unknown) => unknown;
|
|
@@ -1,9 +1,18 @@
|
|
|
1
1
|
import { defineMiddleware } from "../define/middleware.js";
|
|
2
|
+
import { createTaserCompatHandler } from "@taserjs/router-core";
|
|
2
3
|
//#region src/middleware/wrap-hono.ts
|
|
3
4
|
function wrapHonoMiddleware(honoFactory) {
|
|
4
5
|
return (...args) => defineMiddleware(honoFactory(...args));
|
|
5
6
|
}
|
|
7
|
+
/** Extracts the jwtPayload from Hono's variable bag and forwards it into Taser's state via next(). */
|
|
8
|
+
function extractJwtPayload(honoMw) {
|
|
9
|
+
const taserHandler = createTaserCompatHandler(honoMw);
|
|
10
|
+
return (ctx, next) => taserHandler(ctx, async () => {
|
|
11
|
+
const payload = ctx.var.jwtPayload;
|
|
12
|
+
return next({ jwtPayload: payload });
|
|
13
|
+
});
|
|
14
|
+
}
|
|
6
15
|
//#endregion
|
|
7
|
-
export { wrapHonoMiddleware };
|
|
16
|
+
export { extractJwtPayload, wrapHonoMiddleware };
|
|
8
17
|
|
|
9
18
|
//# sourceMappingURL=wrap-hono.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wrap-hono.js","names":[],"sources":["../../../src/middleware/wrap-hono.ts"],"sourcesContent":["import type { MiddlewareHandler } from \"hono\";\n\nimport { defineMiddleware } from \"../define/middleware.js\";\nimport type { MiddlewareReturnFromParts, MiddlewareUnit } from \"../types/units.js\";\n\nexport function wrapHonoMiddleware<F extends (...args: never[]) => MiddlewareHandler>(\n honoFactory: F,\n): (\n ...args: Parameters<F>\n) => MiddlewareUnit<MiddlewareReturnFromParts<unknown, unknown, unknown, {}>> {\n return (...args) => defineMiddleware(honoFactory(...args));\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"wrap-hono.js","names":[],"sources":["../../../src/middleware/wrap-hono.ts"],"sourcesContent":["import { createTaserCompatHandler } from \"@taserjs/router-core\";\nimport type { MiddlewareHandler } from \"hono\";\n\nimport { defineMiddleware } from \"../define/middleware.js\";\nimport type { MiddlewareReturnFromParts, MiddlewareUnit } from \"../types/units.js\";\n\nexport function wrapHonoMiddleware<F extends (...args: never[]) => MiddlewareHandler>(\n honoFactory: F,\n): (\n ...args: Parameters<F>\n) => MiddlewareUnit<MiddlewareReturnFromParts<unknown, unknown, unknown, {}>> {\n return (...args) => defineMiddleware(honoFactory(...args));\n}\n\n/** Extracts the jwtPayload from Hono's variable bag and forwards it into Taser's state via next(). */\nexport function extractJwtPayload<TPayload>(\n honoMw: MiddlewareHandler,\n): (ctx: unknown, next: (state: { jwtPayload: TPayload }) => unknown) => unknown {\n const taserHandler = createTaserCompatHandler(honoMw);\n return (ctx, next) =>\n taserHandler(ctx, async () => {\n const payload = (ctx as unknown as { var: { jwtPayload?: unknown } }).var.jwtPayload;\n return next({ jwtPayload: payload as TPayload });\n });\n}\n"],"mappings":";;;AAMA,SAAgB,mBACd,aAG4E;CAC5E,QAAQ,GAAG,SAAS,iBAAiB,YAAY,GAAG,IAAI,CAAC;AAC3D;;AAGA,SAAgB,kBACd,QAC+E;CAC/E,MAAM,eAAe,yBAAyB,MAAM;CACpD,QAAQ,KAAK,SACX,aAAa,KAAK,YAAY;EAC5B,MAAM,UAAW,IAAqD,IAAI;EAC1E,OAAO,KAAK,EAAE,YAAY,QAAoB,CAAC;CACjD,CAAC;AACL"}
|
package/dist/esm/reply.d.ts
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
export
|
|
2
|
-
export type { BinaryBody, BodyKind, FileReplyInit, RedirectInit, ReplyBodyKind, ReplyInit, ReplyOf, SuccessReplyData, } from '@taserjs/router-utils/reply';
|
|
1
|
+
export * from '@taserjs/router-utils/reply';
|
package/dist/esm/reply.js
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export { errorReply, reply, successReply };
|
|
1
|
+
export * from "@taserjs/router-utils/reply";
|
package/dist/esm/stream.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export
|
|
1
|
+
export * from '@taserjs/router-utils/stream';
|
package/dist/esm/stream.js
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export { blob, buffer, file, pipe, stream };
|
|
1
|
+
export * from "@taserjs/router-utils/stream";
|
package/dist/esm/types/app.d.ts
CHANGED
|
@@ -1,47 +1,29 @@
|
|
|
1
|
+
import { CookieRuntimeConfig, RouteManifestShape } from '@taserjs/router-core';
|
|
1
2
|
import { ResponseValidationFailureHandler } from '@taserjs/router-utils';
|
|
2
|
-
import { TaserApp } from '../
|
|
3
|
+
import { TaserApp } from '../builder/app.js';
|
|
3
4
|
import { ReturnsMap } from './returns.js';
|
|
4
5
|
import { Schema } from './schema.js';
|
|
5
6
|
export type CreateTaserAppOptions = {
|
|
6
|
-
basePath?: string;
|
|
7
7
|
response?: {
|
|
8
8
|
/** Validate handler replies against returns maps. Default true. */
|
|
9
9
|
validate?: boolean;
|
|
10
10
|
onValidationFailure?: ResponseValidationFailureHandler;
|
|
11
11
|
};
|
|
12
12
|
/** Global cookie defaults and signing secret. Per-call `ctx.cookies.set` options override defaults. */
|
|
13
|
-
cookies?:
|
|
14
|
-
secret?: string | BufferSource;
|
|
15
|
-
path?: string;
|
|
16
|
-
httpOnly?: boolean;
|
|
17
|
-
sameSite?: "Strict" | "Lax" | "None" | "strict" | "lax" | "none";
|
|
18
|
-
secure?: boolean;
|
|
19
|
-
domain?: string;
|
|
20
|
-
maxAge?: number;
|
|
21
|
-
expires?: Date;
|
|
22
|
-
};
|
|
23
|
-
};
|
|
24
|
-
export type CreateContextArgs = {
|
|
25
|
-
native?: import('./units.js').NativeContext;
|
|
13
|
+
cookies?: CookieRuntimeConfig;
|
|
26
14
|
};
|
|
27
15
|
export type ContextDefinition<TBoot extends Record<string, unknown> = Record<string, never>, TReq extends Record<string, unknown> = Record<string, never>> = {
|
|
28
16
|
boot?: () => TBoot | Promise<TBoot>;
|
|
29
|
-
request?: (
|
|
17
|
+
request?: (req: Request) => TReq | Promise<TReq>;
|
|
30
18
|
};
|
|
31
19
|
export type InferAppContext<T extends ContextDefinition<Record<string, unknown>, Record<string, unknown>>> = T extends ContextDefinition<infer TBoot, infer TReq> ? TBoot & TReq : Record<string, never>;
|
|
32
20
|
export type OnErrorOptions<TResponses extends ReturnsMap = ReturnsMap> = {
|
|
33
21
|
responses?: TResponses;
|
|
34
22
|
handle: (error: unknown, ctx?: unknown) => Response | Promise<Response>;
|
|
35
23
|
};
|
|
36
|
-
export type InferAppManifest<TApp> = TApp extends TaserApp<infer TManifest> ? TManifest :
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
* Mount the Taser handler on a framework app.
|
|
40
|
-
* Use universal wildcard patterns (`/*`, `/prefix/*`) for Hono/Fastify.
|
|
41
|
-
* Use framework-native splat patterns for Express (e.g. `/{*splat}`, `/*splat`).
|
|
42
|
-
*/
|
|
43
|
-
mount(pattern: string, frameworkApp: TFrameworkApp): void;
|
|
44
|
-
};
|
|
24
|
+
export type InferAppManifest<TApp> = TApp extends TaserApp<infer TManifest, any> ? TManifest : TApp extends {
|
|
25
|
+
manifest: infer TManifest;
|
|
26
|
+
} ? TManifest : TApp extends RouteManifestShape ? TApp : never;
|
|
45
27
|
export type { RouteManifestShape } from '@taserjs/router-core';
|
|
46
28
|
export type { Schema };
|
|
47
|
-
export type { TaserApp
|
|
29
|
+
export type { TaserApp } from '../builder/app.js';
|