@orpc/server 0.0.0-next.f81b4a2 → 0.0.0-next.fa75202

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/README.md +14 -17
  2. package/dist/adapters/bun-ws/index.d.mts +35 -0
  3. package/dist/adapters/bun-ws/index.d.ts +35 -0
  4. package/dist/adapters/bun-ws/index.mjs +51 -0
  5. package/dist/adapters/crossws/index.d.mts +30 -0
  6. package/dist/adapters/crossws/index.d.ts +30 -0
  7. package/dist/adapters/crossws/index.mjs +51 -0
  8. package/dist/adapters/fetch/index.d.mts +17 -9
  9. package/dist/adapters/fetch/index.d.ts +17 -9
  10. package/dist/adapters/fetch/index.mjs +7 -2
  11. package/dist/adapters/message-port/index.d.mts +28 -0
  12. package/dist/adapters/message-port/index.d.ts +28 -0
  13. package/dist/adapters/message-port/index.mjs +41 -0
  14. package/dist/adapters/node/index.d.mts +17 -9
  15. package/dist/adapters/node/index.d.ts +17 -9
  16. package/dist/adapters/node/index.mjs +7 -2
  17. package/dist/adapters/standard/index.d.mts +4 -4
  18. package/dist/adapters/standard/index.d.ts +4 -4
  19. package/dist/adapters/standard/index.mjs +4 -5
  20. package/dist/adapters/websocket/index.d.mts +27 -0
  21. package/dist/adapters/websocket/index.d.ts +27 -0
  22. package/dist/adapters/websocket/index.mjs +38 -0
  23. package/dist/adapters/ws/index.d.mts +28 -0
  24. package/dist/adapters/ws/index.d.ts +28 -0
  25. package/dist/adapters/ws/index.mjs +38 -0
  26. package/dist/index.d.mts +4 -4
  27. package/dist/index.d.ts +4 -4
  28. package/dist/index.mjs +6 -2
  29. package/dist/plugins/index.d.mts +11 -11
  30. package/dist/plugins/index.d.ts +11 -11
  31. package/dist/plugins/index.mjs +6 -7
  32. package/dist/shared/{server.D5fBlF9j.d.ts → server.-ACo36I0.d.ts} +9 -9
  33. package/dist/shared/{server.qf03T-Xn.mjs → server.4FnxLwwr.mjs} +10 -14
  34. package/dist/shared/{server.CuD15qZB.d.ts → server.BPAWobQg.d.ts} +3 -9
  35. package/dist/shared/{server.CN0534_m.d.mts → server.Bd52nNaH.d.mts} +3 -9
  36. package/dist/shared/{server.DjgtLwKi.d.mts → server.BliFSTnG.d.mts} +2 -2
  37. package/dist/shared/{server.DPWk5pjW.d.mts → server.DD2C4ujN.d.mts} +4 -4
  38. package/dist/shared/{server.DPWk5pjW.d.ts → server.DD2C4ujN.d.ts} +4 -4
  39. package/dist/shared/{server.DY7OKEoj.d.mts → server.Dq8xr7PQ.d.mts} +9 -9
  40. package/dist/shared/{server.CjlA3NKP.d.ts → server.IG2MjhrD.d.ts} +2 -2
  41. package/package.json +50 -8
@@ -2,11 +2,12 @@ import { ORPCError } from '@orpc/client';
2
2
  import { toArray, intercept, resolveMaybeOptionalOptions } from '@orpc/shared';
3
3
  import { toStandardLazyRequest, sendStandardResponse } from '@orpc/standard-server-node';
4
4
  import { r as resolveFriendlyStandardHandleOptions } from '../../shared/server.BVwwTHyO.mjs';
5
+ import '@orpc/standard-server';
5
6
  import '@orpc/contract';
6
- import { C as CompositeStandardHandlerPlugin, b as StandardRPCHandler } from '../../shared/server.qf03T-Xn.mjs';
7
+ import { C as CompositeStandardHandlerPlugin, b as StandardRPCHandler } from '../../shared/server.4FnxLwwr.mjs';
7
8
  import '@orpc/client/standard';
8
9
  import '@orpc/standard-server/batch';
9
- import '../../shared/server.BW-nUGgA.mjs';
10
+ import { S as StrictGetMethodPlugin } from '../../shared/server.BW-nUGgA.mjs';
10
11
  import '../../shared/server.DG7Tamti.mjs';
11
12
 
12
13
  class BodyLimitPlugin {
@@ -83,6 +84,10 @@ class NodeHttpHandler {
83
84
 
84
85
  class RPCHandler extends NodeHttpHandler {
85
86
  constructor(router, options = {}) {
87
+ if (options.strictGetMethodPluginEnabled ?? true) {
88
+ options.plugins ??= [];
89
+ options.plugins.push(new StrictGetMethodPlugin());
90
+ }
86
91
  super(new StandardRPCHandler(router, options), options);
87
92
  }
88
93
  }
@@ -1,10 +1,10 @@
1
- import { c as StandardCodec, d as StandardParams, e as StandardMatcher, f as StandardMatchResult } from '../../shared/server.DY7OKEoj.mjs';
2
- export { C as CompositeStandardHandlerPlugin, g as StandardHandleOptions, h as StandardHandleResult, i as StandardHandler, S as StandardHandlerInterceptorOptions, b as StandardHandlerOptions, a as StandardHandlerPlugin } from '../../shared/server.DY7OKEoj.mjs';
1
+ import { c as StandardCodec, d as StandardParams, e as StandardMatcher, f as StandardMatchResult } from '../../shared/server.Dq8xr7PQ.mjs';
2
+ export { C as CompositeStandardHandlerPlugin, g as StandardHandleOptions, h as StandardHandleResult, i as StandardHandler, S as StandardHandlerInterceptorOptions, b as StandardHandlerOptions, a as StandardHandlerPlugin } from '../../shared/server.Dq8xr7PQ.mjs';
3
3
  import { ORPCError, HTTPPath } from '@orpc/client';
4
4
  import { StandardRPCSerializer } from '@orpc/client/standard';
5
5
  import { StandardLazyRequest, StandardResponse } from '@orpc/standard-server';
6
- import { h as AnyProcedure, f as AnyRouter } from '../../shared/server.DPWk5pjW.mjs';
7
- export { a as StandardRPCHandler, S as StandardRPCHandlerOptions } from '../../shared/server.CN0534_m.mjs';
6
+ import { h as AnyProcedure, f as AnyRouter } from '../../shared/server.DD2C4ujN.mjs';
7
+ export { a as StandardRPCHandler, S as StandardRPCHandlerOptions } from '../../shared/server.Bd52nNaH.mjs';
8
8
  import '@orpc/contract';
9
9
  import '@orpc/shared';
10
10
 
@@ -1,10 +1,10 @@
1
- import { c as StandardCodec, d as StandardParams, e as StandardMatcher, f as StandardMatchResult } from '../../shared/server.D5fBlF9j.js';
2
- export { C as CompositeStandardHandlerPlugin, g as StandardHandleOptions, h as StandardHandleResult, i as StandardHandler, S as StandardHandlerInterceptorOptions, b as StandardHandlerOptions, a as StandardHandlerPlugin } from '../../shared/server.D5fBlF9j.js';
1
+ import { c as StandardCodec, d as StandardParams, e as StandardMatcher, f as StandardMatchResult } from '../../shared/server.-ACo36I0.js';
2
+ export { C as CompositeStandardHandlerPlugin, g as StandardHandleOptions, h as StandardHandleResult, i as StandardHandler, S as StandardHandlerInterceptorOptions, b as StandardHandlerOptions, a as StandardHandlerPlugin } from '../../shared/server.-ACo36I0.js';
3
3
  import { ORPCError, HTTPPath } from '@orpc/client';
4
4
  import { StandardRPCSerializer } from '@orpc/client/standard';
5
5
  import { StandardLazyRequest, StandardResponse } from '@orpc/standard-server';
6
- import { h as AnyProcedure, f as AnyRouter } from '../../shared/server.DPWk5pjW.js';
7
- export { a as StandardRPCHandler, S as StandardRPCHandlerOptions } from '../../shared/server.CuD15qZB.js';
6
+ import { h as AnyProcedure, f as AnyRouter } from '../../shared/server.DD2C4ujN.js';
7
+ export { a as StandardRPCHandler, S as StandardRPCHandlerOptions } from '../../shared/server.BPAWobQg.js';
8
8
  import '@orpc/contract';
9
9
  import '@orpc/shared';
10
10
 
@@ -1,8 +1,7 @@
1
- export { C as CompositeStandardHandlerPlugin, S as StandardHandler, a as StandardRPCCodec, b as StandardRPCHandler, c as StandardRPCMatcher } from '../../shared/server.qf03T-Xn.mjs';
1
+ export { C as CompositeStandardHandlerPlugin, S as StandardHandler, a as StandardRPCCodec, b as StandardRPCHandler, c as StandardRPCMatcher } from '../../shared/server.4FnxLwwr.mjs';
2
2
  import '@orpc/client/standard';
3
- import '@orpc/shared';
4
- import '@orpc/standard-server/batch';
5
3
  import '@orpc/client';
6
- import '../../shared/server.BW-nUGgA.mjs';
7
- import '@orpc/contract';
4
+ import '@orpc/shared';
5
+ import '@orpc/standard-server';
8
6
  import '../../shared/server.DG7Tamti.mjs';
7
+ import '@orpc/contract';
@@ -0,0 +1,27 @@
1
+ import { MaybeOptionalOptions } from '@orpc/shared';
2
+ import { C as Context, R as Router } from '../../shared/server.DD2C4ujN.mjs';
3
+ import { i as StandardHandler } from '../../shared/server.Dq8xr7PQ.mjs';
4
+ import { F as FriendlyStandardHandleOptions } from '../../shared/server.BliFSTnG.mjs';
5
+ import { S as StandardRPCHandlerOptions } from '../../shared/server.Bd52nNaH.mjs';
6
+ import '@orpc/client';
7
+ import '@orpc/contract';
8
+ import '@orpc/standard-server';
9
+ import '@orpc/client/standard';
10
+
11
+ declare class experimental_WebsocketHandler<T extends Context> {
12
+ private readonly standardHandler;
13
+ constructor(standardHandler: StandardHandler<T>);
14
+ upgrade(ws: Pick<WebSocket, 'addEventListener' | 'send'>, ...rest: MaybeOptionalOptions<Omit<FriendlyStandardHandleOptions<T>, 'prefix'>>): void;
15
+ }
16
+
17
+ /**
18
+ * RPC Handler for Websocket adapter
19
+ *
20
+ * @see {@link https://orpc.unnoq.com/docs/rpc-handler RPC Handler Docs}
21
+ * @see {@link https://orpc.unnoq.com/docs/adapters/websocket Websocket Adapter Docs}
22
+ */
23
+ declare class experimental_RPCHandler<T extends Context> extends experimental_WebsocketHandler<T> {
24
+ constructor(router: Router<any, T>, options?: NoInfer<StandardRPCHandlerOptions<T>>);
25
+ }
26
+
27
+ export { experimental_RPCHandler, experimental_WebsocketHandler };
@@ -0,0 +1,27 @@
1
+ import { MaybeOptionalOptions } from '@orpc/shared';
2
+ import { C as Context, R as Router } from '../../shared/server.DD2C4ujN.js';
3
+ import { i as StandardHandler } from '../../shared/server.-ACo36I0.js';
4
+ import { F as FriendlyStandardHandleOptions } from '../../shared/server.IG2MjhrD.js';
5
+ import { S as StandardRPCHandlerOptions } from '../../shared/server.BPAWobQg.js';
6
+ import '@orpc/client';
7
+ import '@orpc/contract';
8
+ import '@orpc/standard-server';
9
+ import '@orpc/client/standard';
10
+
11
+ declare class experimental_WebsocketHandler<T extends Context> {
12
+ private readonly standardHandler;
13
+ constructor(standardHandler: StandardHandler<T>);
14
+ upgrade(ws: Pick<WebSocket, 'addEventListener' | 'send'>, ...rest: MaybeOptionalOptions<Omit<FriendlyStandardHandleOptions<T>, 'prefix'>>): void;
15
+ }
16
+
17
+ /**
18
+ * RPC Handler for Websocket adapter
19
+ *
20
+ * @see {@link https://orpc.unnoq.com/docs/rpc-handler RPC Handler Docs}
21
+ * @see {@link https://orpc.unnoq.com/docs/adapters/websocket Websocket Adapter Docs}
22
+ */
23
+ declare class experimental_RPCHandler<T extends Context> extends experimental_WebsocketHandler<T> {
24
+ constructor(router: Router<any, T>, options?: NoInfer<StandardRPCHandlerOptions<T>>);
25
+ }
26
+
27
+ export { experimental_RPCHandler, experimental_WebsocketHandler };
@@ -0,0 +1,38 @@
1
+ import { resolveMaybeOptionalOptions } from '@orpc/shared';
2
+ import { ServerPeer } from '@orpc/standard-server-peer';
3
+ import { r as resolveFriendlyStandardHandleOptions } from '../../shared/server.BVwwTHyO.mjs';
4
+ import '@orpc/client';
5
+ import '@orpc/standard-server';
6
+ import '@orpc/contract';
7
+ import { b as StandardRPCHandler } from '../../shared/server.4FnxLwwr.mjs';
8
+ import '@orpc/client/standard';
9
+ import '../../shared/server.DG7Tamti.mjs';
10
+
11
+ class experimental_WebsocketHandler {
12
+ constructor(standardHandler) {
13
+ this.standardHandler = standardHandler;
14
+ }
15
+ upgrade(ws, ...rest) {
16
+ const peer = new ServerPeer(ws.send.bind(ws));
17
+ ws.addEventListener("message", async (event) => {
18
+ const [id, request] = await peer.message(event.data);
19
+ if (!request) {
20
+ return;
21
+ }
22
+ const options = resolveFriendlyStandardHandleOptions(resolveMaybeOptionalOptions(rest));
23
+ const { response } = await this.standardHandler.handle({ ...request, body: () => Promise.resolve(request.body) }, options);
24
+ await peer.response(id, response ?? { status: 404, headers: {}, body: "No procedure matched" });
25
+ });
26
+ ws.addEventListener("close", () => {
27
+ peer.close();
28
+ });
29
+ }
30
+ }
31
+
32
+ class experimental_RPCHandler extends experimental_WebsocketHandler {
33
+ constructor(router, options = {}) {
34
+ super(new StandardRPCHandler(router, options));
35
+ }
36
+ }
37
+
38
+ export { experimental_RPCHandler, experimental_WebsocketHandler };
@@ -0,0 +1,28 @@
1
+ import { MaybeOptionalOptions } from '@orpc/shared';
2
+ import { WebSocket } from 'ws';
3
+ import { C as Context, R as Router } from '../../shared/server.DD2C4ujN.mjs';
4
+ import { i as StandardHandler } from '../../shared/server.Dq8xr7PQ.mjs';
5
+ import { F as FriendlyStandardHandleOptions } from '../../shared/server.BliFSTnG.mjs';
6
+ import { S as StandardRPCHandlerOptions } from '../../shared/server.Bd52nNaH.mjs';
7
+ import '@orpc/client';
8
+ import '@orpc/contract';
9
+ import '@orpc/standard-server';
10
+ import '@orpc/client/standard';
11
+
12
+ declare class experimental_WsHandler<T extends Context> {
13
+ private readonly standardHandler;
14
+ constructor(standardHandler: StandardHandler<T>);
15
+ upgrade(ws: Pick<WebSocket, 'addEventListener' | 'send'>, ...rest: MaybeOptionalOptions<Omit<FriendlyStandardHandleOptions<T>, 'prefix'>>): Promise<void>;
16
+ }
17
+
18
+ /**
19
+ * RPC Handler for ws (node ws) adapter
20
+ *
21
+ * @see {@link https://orpc.unnoq.com/docs/rpc-handler RPC Handler Docs}
22
+ * @see {@link https://orpc.unnoq.com/docs/adapters/websocket Websocket Adapter Docs}
23
+ */
24
+ declare class experimental_RPCHandler<T extends Context> extends experimental_WsHandler<T> {
25
+ constructor(router: Router<any, T>, options?: NoInfer<StandardRPCHandlerOptions<T>>);
26
+ }
27
+
28
+ export { experimental_RPCHandler, experimental_WsHandler };
@@ -0,0 +1,28 @@
1
+ import { MaybeOptionalOptions } from '@orpc/shared';
2
+ import { WebSocket } from 'ws';
3
+ import { C as Context, R as Router } from '../../shared/server.DD2C4ujN.js';
4
+ import { i as StandardHandler } from '../../shared/server.-ACo36I0.js';
5
+ import { F as FriendlyStandardHandleOptions } from '../../shared/server.IG2MjhrD.js';
6
+ import { S as StandardRPCHandlerOptions } from '../../shared/server.BPAWobQg.js';
7
+ import '@orpc/client';
8
+ import '@orpc/contract';
9
+ import '@orpc/standard-server';
10
+ import '@orpc/client/standard';
11
+
12
+ declare class experimental_WsHandler<T extends Context> {
13
+ private readonly standardHandler;
14
+ constructor(standardHandler: StandardHandler<T>);
15
+ upgrade(ws: Pick<WebSocket, 'addEventListener' | 'send'>, ...rest: MaybeOptionalOptions<Omit<FriendlyStandardHandleOptions<T>, 'prefix'>>): Promise<void>;
16
+ }
17
+
18
+ /**
19
+ * RPC Handler for ws (node ws) adapter
20
+ *
21
+ * @see {@link https://orpc.unnoq.com/docs/rpc-handler RPC Handler Docs}
22
+ * @see {@link https://orpc.unnoq.com/docs/adapters/websocket Websocket Adapter Docs}
23
+ */
24
+ declare class experimental_RPCHandler<T extends Context> extends experimental_WsHandler<T> {
25
+ constructor(router: Router<any, T>, options?: NoInfer<StandardRPCHandlerOptions<T>>);
26
+ }
27
+
28
+ export { experimental_RPCHandler, experimental_WsHandler };
@@ -0,0 +1,38 @@
1
+ import { resolveMaybeOptionalOptions } from '@orpc/shared';
2
+ import { ServerPeer } from '@orpc/standard-server-peer';
3
+ import { r as resolveFriendlyStandardHandleOptions } from '../../shared/server.BVwwTHyO.mjs';
4
+ import '@orpc/client';
5
+ import '@orpc/standard-server';
6
+ import '@orpc/contract';
7
+ import { b as StandardRPCHandler } from '../../shared/server.4FnxLwwr.mjs';
8
+ import '@orpc/client/standard';
9
+ import '../../shared/server.DG7Tamti.mjs';
10
+
11
+ class experimental_WsHandler {
12
+ constructor(standardHandler) {
13
+ this.standardHandler = standardHandler;
14
+ }
15
+ async upgrade(ws, ...rest) {
16
+ const peer = new ServerPeer(ws.send.bind(ws));
17
+ ws.addEventListener("message", async (event) => {
18
+ const [id, request] = await peer.message(new Blob(Array.isArray(event.data) ? event.data : [event.data]));
19
+ if (!request) {
20
+ return;
21
+ }
22
+ const options = resolveFriendlyStandardHandleOptions(resolveMaybeOptionalOptions(rest));
23
+ const { response } = await this.standardHandler.handle({ ...request, body: () => Promise.resolve(request.body) }, options);
24
+ await peer.response(id, response ?? { status: 404, headers: {}, body: "No procedure matched" });
25
+ });
26
+ ws.addEventListener("close", () => {
27
+ peer.close();
28
+ });
29
+ }
30
+ }
31
+
32
+ class experimental_RPCHandler extends experimental_WsHandler {
33
+ constructor(router, options = {}) {
34
+ super(new StandardRPCHandler(router, options));
35
+ }
36
+ }
37
+
38
+ export { experimental_RPCHandler, experimental_WsHandler };
package/dist/index.d.mts CHANGED
@@ -4,8 +4,8 @@ import { AnySchema, ErrorMap, InferSchemaInput, InferSchemaOutput, ErrorFromErro
4
4
  export { ContractProcedure, ContractProcedureDef, ContractRouter, ErrorMap, ErrorMapItem, InferSchemaInput, InferSchemaOutput, InputStructure, MergedErrorMap, Meta, OutputStructure, Route, Schema, ValidationError, eventIterator, type } from '@orpc/contract';
5
5
  import { ThrowableError, IntersectPick, MaybeOptionalOptions } from '@orpc/shared';
6
6
  export { IntersectPick, Registry, ThrowableError, onError, onFinish, onStart, onSuccess } from '@orpc/shared';
7
- import { C as Context, P as Procedure, M as Middleware, O as ORPCErrorConstructorMap, a as MergedInitialContext, b as MergedCurrentContext, c as MapInputMiddleware, d as CreateProcedureClientOptions, e as ProcedureClient, A as AnyMiddleware, L as Lazyable, f as AnyRouter, g as Lazy, h as AnyProcedure, i as ProcedureHandler, R as Router, I as InferRouterInitialContext } from './shared/server.DPWk5pjW.mjs';
8
- export { J as InferRouterCurrentContexts, H as InferRouterInitialContexts, K as InferRouterInputs, N as InferRouterOutputs, n as LAZY_SYMBOL, o as LazyMeta, w as MiddlewareNextFn, t as MiddlewareNextFnOptions, y as MiddlewareOptions, x as MiddlewareOutputFn, s as MiddlewareResult, k as ORPCErrorConstructorMapItem, j as ORPCErrorConstructorMapItemOptions, F as ProcedureClientInterceptorOptions, D as ProcedureDef, B as ProcedureHandlerOptions, l as createORPCErrorConstructorMap, G as createProcedureClient, r as getLazyMeta, q as isLazy, E as isProcedure, p as lazy, m as mergeCurrentContext, z as middlewareOutputFn, u as unlazy, v as validateORPCError } from './shared/server.DPWk5pjW.mjs';
7
+ import { C as Context, P as Procedure, M as Middleware, O as ORPCErrorConstructorMap, a as MergedInitialContext, b as MergedCurrentContext, c as MapInputMiddleware, d as CreateProcedureClientOptions, e as ProcedureClient, A as AnyMiddleware, L as Lazyable, f as AnyRouter, g as Lazy, h as AnyProcedure, i as ProcedureHandler, R as Router, I as InferRouterInitialContext } from './shared/server.DD2C4ujN.mjs';
8
+ export { J as InferRouterCurrentContexts, H as InferRouterInitialContexts, K as InferRouterInputs, N as InferRouterOutputs, n as LAZY_SYMBOL, o as LazyMeta, w as MiddlewareNextFn, t as MiddlewareNextFnOptions, y as MiddlewareOptions, x as MiddlewareOutputFn, s as MiddlewareResult, k as ORPCErrorConstructorMapItem, j as ORPCErrorConstructorMapItemOptions, F as ProcedureClientInterceptorOptions, D as ProcedureDef, B as ProcedureHandlerOptions, l as createORPCErrorConstructorMap, G as createProcedureClient, r as getLazyMeta, q as isLazy, E as isProcedure, p as lazy, m as mergeCurrentContext, z as middlewareOutputFn, u as unlazy, v as validateORPCError } from './shared/server.DD2C4ujN.mjs';
9
9
  export { getEventMeta, withEventMeta } from '@orpc/standard-server';
10
10
 
11
11
  type ActionableError<T> = T extends ORPCError<infer U, infer V> ? ORPCErrorJSON<U, V> & {
@@ -479,14 +479,14 @@ interface DecoratedMiddleware<TInContext extends Context, TOutContext extends Co
479
479
  * @info Pass second argument to map the input.
480
480
  * @see {@link https://orpc.unnoq.com/docs/middleware#concatenation Middleware Concatenation Docs}
481
481
  */
482
- concat<UOutContext extends IntersectPick<MergedCurrentContext<TInContext, TOutContext>, UOutContext>, UInContext extends Context = MergedCurrentContext<TInContext, TOutContext>>(middleware: Middleware<UInContext | MergedCurrentContext<TInContext, TOutContext>, UOutContext, TInput, TOutput, TErrorConstructorMap, TMeta>): DecoratedMiddleware<MergedInitialContext<TInContext, UInContext, MergedCurrentContext<TInContext, TOutContext>>, MergedCurrentContext<TOutContext, UOutContext>, TInput, TOutput, TErrorConstructorMap, TMeta>;
482
+ concat<UOutContext extends IntersectPick<MergedCurrentContext<TInContext, TOutContext>, UOutContext>, UInput extends TInput, UInContext extends Context = MergedCurrentContext<TInContext, TOutContext>>(middleware: Middleware<UInContext | MergedCurrentContext<TInContext, TOutContext>, UOutContext, UInput, TOutput, TErrorConstructorMap, TMeta>): DecoratedMiddleware<MergedInitialContext<TInContext, UInContext, MergedCurrentContext<TInContext, TOutContext>>, MergedCurrentContext<TOutContext, UOutContext>, UInput, TOutput, TErrorConstructorMap, TMeta>;
483
483
  /**
484
484
  * Concatenates two middlewares.
485
485
  *
486
486
  * @info Pass second argument to map the input.
487
487
  * @see {@link https://orpc.unnoq.com/docs/middleware#concatenation Middleware Concatenation Docs}
488
488
  */
489
- concat<UOutContext extends IntersectPick<MergedCurrentContext<TInContext, TOutContext>, UOutContext>, UMappedInput, UInContext extends Context = MergedCurrentContext<TInContext, TOutContext>>(middleware: Middleware<UInContext | MergedCurrentContext<TInContext, TOutContext>, UOutContext, UMappedInput, TOutput, TErrorConstructorMap, TMeta>, mapInput: MapInputMiddleware<TInput, UMappedInput>): DecoratedMiddleware<MergedInitialContext<TInContext, UInContext, MergedCurrentContext<TInContext, TOutContext>>, MergedCurrentContext<TOutContext, UOutContext>, TInput, TOutput, TErrorConstructorMap, TMeta>;
489
+ concat<UOutContext extends IntersectPick<MergedCurrentContext<TInContext, TOutContext>, UOutContext>, UInput extends TInput, UMappedInput, UInContext extends Context = MergedCurrentContext<TInContext, TOutContext>>(middleware: Middleware<UInContext | MergedCurrentContext<TInContext, TOutContext>, UOutContext, UMappedInput, TOutput, TErrorConstructorMap, TMeta>, mapInput: MapInputMiddleware<UInput, UMappedInput>): DecoratedMiddleware<MergedInitialContext<TInContext, UInContext, MergedCurrentContext<TInContext, TOutContext>>, MergedCurrentContext<TOutContext, UOutContext>, UInput, TOutput, TErrorConstructorMap, TMeta>;
490
490
  }
491
491
  declare function decorateMiddleware<TInContext extends Context, TOutContext extends Context, TInput, TOutput, TErrorConstructorMap extends ORPCErrorConstructorMap<any>, TMeta extends Meta>(middleware: Middleware<TInContext, TOutContext, TInput, TOutput, TErrorConstructorMap, TMeta>): DecoratedMiddleware<TInContext, TOutContext, TInput, TOutput, TErrorConstructorMap, TMeta>;
492
492
 
package/dist/index.d.ts CHANGED
@@ -4,8 +4,8 @@ import { AnySchema, ErrorMap, InferSchemaInput, InferSchemaOutput, ErrorFromErro
4
4
  export { ContractProcedure, ContractProcedureDef, ContractRouter, ErrorMap, ErrorMapItem, InferSchemaInput, InferSchemaOutput, InputStructure, MergedErrorMap, Meta, OutputStructure, Route, Schema, ValidationError, eventIterator, type } from '@orpc/contract';
5
5
  import { ThrowableError, IntersectPick, MaybeOptionalOptions } from '@orpc/shared';
6
6
  export { IntersectPick, Registry, ThrowableError, onError, onFinish, onStart, onSuccess } from '@orpc/shared';
7
- import { C as Context, P as Procedure, M as Middleware, O as ORPCErrorConstructorMap, a as MergedInitialContext, b as MergedCurrentContext, c as MapInputMiddleware, d as CreateProcedureClientOptions, e as ProcedureClient, A as AnyMiddleware, L as Lazyable, f as AnyRouter, g as Lazy, h as AnyProcedure, i as ProcedureHandler, R as Router, I as InferRouterInitialContext } from './shared/server.DPWk5pjW.js';
8
- export { J as InferRouterCurrentContexts, H as InferRouterInitialContexts, K as InferRouterInputs, N as InferRouterOutputs, n as LAZY_SYMBOL, o as LazyMeta, w as MiddlewareNextFn, t as MiddlewareNextFnOptions, y as MiddlewareOptions, x as MiddlewareOutputFn, s as MiddlewareResult, k as ORPCErrorConstructorMapItem, j as ORPCErrorConstructorMapItemOptions, F as ProcedureClientInterceptorOptions, D as ProcedureDef, B as ProcedureHandlerOptions, l as createORPCErrorConstructorMap, G as createProcedureClient, r as getLazyMeta, q as isLazy, E as isProcedure, p as lazy, m as mergeCurrentContext, z as middlewareOutputFn, u as unlazy, v as validateORPCError } from './shared/server.DPWk5pjW.js';
7
+ import { C as Context, P as Procedure, M as Middleware, O as ORPCErrorConstructorMap, a as MergedInitialContext, b as MergedCurrentContext, c as MapInputMiddleware, d as CreateProcedureClientOptions, e as ProcedureClient, A as AnyMiddleware, L as Lazyable, f as AnyRouter, g as Lazy, h as AnyProcedure, i as ProcedureHandler, R as Router, I as InferRouterInitialContext } from './shared/server.DD2C4ujN.js';
8
+ export { J as InferRouterCurrentContexts, H as InferRouterInitialContexts, K as InferRouterInputs, N as InferRouterOutputs, n as LAZY_SYMBOL, o as LazyMeta, w as MiddlewareNextFn, t as MiddlewareNextFnOptions, y as MiddlewareOptions, x as MiddlewareOutputFn, s as MiddlewareResult, k as ORPCErrorConstructorMapItem, j as ORPCErrorConstructorMapItemOptions, F as ProcedureClientInterceptorOptions, D as ProcedureDef, B as ProcedureHandlerOptions, l as createORPCErrorConstructorMap, G as createProcedureClient, r as getLazyMeta, q as isLazy, E as isProcedure, p as lazy, m as mergeCurrentContext, z as middlewareOutputFn, u as unlazy, v as validateORPCError } from './shared/server.DD2C4ujN.js';
9
9
  export { getEventMeta, withEventMeta } from '@orpc/standard-server';
10
10
 
11
11
  type ActionableError<T> = T extends ORPCError<infer U, infer V> ? ORPCErrorJSON<U, V> & {
@@ -479,14 +479,14 @@ interface DecoratedMiddleware<TInContext extends Context, TOutContext extends Co
479
479
  * @info Pass second argument to map the input.
480
480
  * @see {@link https://orpc.unnoq.com/docs/middleware#concatenation Middleware Concatenation Docs}
481
481
  */
482
- concat<UOutContext extends IntersectPick<MergedCurrentContext<TInContext, TOutContext>, UOutContext>, UInContext extends Context = MergedCurrentContext<TInContext, TOutContext>>(middleware: Middleware<UInContext | MergedCurrentContext<TInContext, TOutContext>, UOutContext, TInput, TOutput, TErrorConstructorMap, TMeta>): DecoratedMiddleware<MergedInitialContext<TInContext, UInContext, MergedCurrentContext<TInContext, TOutContext>>, MergedCurrentContext<TOutContext, UOutContext>, TInput, TOutput, TErrorConstructorMap, TMeta>;
482
+ concat<UOutContext extends IntersectPick<MergedCurrentContext<TInContext, TOutContext>, UOutContext>, UInput extends TInput, UInContext extends Context = MergedCurrentContext<TInContext, TOutContext>>(middleware: Middleware<UInContext | MergedCurrentContext<TInContext, TOutContext>, UOutContext, UInput, TOutput, TErrorConstructorMap, TMeta>): DecoratedMiddleware<MergedInitialContext<TInContext, UInContext, MergedCurrentContext<TInContext, TOutContext>>, MergedCurrentContext<TOutContext, UOutContext>, UInput, TOutput, TErrorConstructorMap, TMeta>;
483
483
  /**
484
484
  * Concatenates two middlewares.
485
485
  *
486
486
  * @info Pass second argument to map the input.
487
487
  * @see {@link https://orpc.unnoq.com/docs/middleware#concatenation Middleware Concatenation Docs}
488
488
  */
489
- concat<UOutContext extends IntersectPick<MergedCurrentContext<TInContext, TOutContext>, UOutContext>, UMappedInput, UInContext extends Context = MergedCurrentContext<TInContext, TOutContext>>(middleware: Middleware<UInContext | MergedCurrentContext<TInContext, TOutContext>, UOutContext, UMappedInput, TOutput, TErrorConstructorMap, TMeta>, mapInput: MapInputMiddleware<TInput, UMappedInput>): DecoratedMiddleware<MergedInitialContext<TInContext, UInContext, MergedCurrentContext<TInContext, TOutContext>>, MergedCurrentContext<TOutContext, UOutContext>, TInput, TOutput, TErrorConstructorMap, TMeta>;
489
+ concat<UOutContext extends IntersectPick<MergedCurrentContext<TInContext, TOutContext>, UOutContext>, UInput extends TInput, UMappedInput, UInContext extends Context = MergedCurrentContext<TInContext, TOutContext>>(middleware: Middleware<UInContext | MergedCurrentContext<TInContext, TOutContext>, UOutContext, UMappedInput, TOutput, TErrorConstructorMap, TMeta>, mapInput: MapInputMiddleware<UInput, UMappedInput>): DecoratedMiddleware<MergedInitialContext<TInContext, UInContext, MergedCurrentContext<TInContext, TOutContext>>, MergedCurrentContext<TOutContext, UOutContext>, UInput, TOutput, TErrorConstructorMap, TMeta>;
490
490
  }
491
491
  declare function decorateMiddleware<TInContext extends Context, TOutContext extends Context, TInput, TOutput, TErrorConstructorMap extends ORPCErrorConstructorMap<any>, TMeta extends Meta>(middleware: Middleware<TInContext, TOutContext, TInput, TOutput, TErrorConstructorMap, TMeta>): DecoratedMiddleware<TInContext, TOutContext, TInput, TOutput, TErrorConstructorMap, TMeta>;
492
492
 
package/dist/index.mjs CHANGED
@@ -4,6 +4,7 @@ import { P as Procedure, b as addMiddleware, c as createProcedureClient, e as en
4
4
  export { L as LAZY_SYMBOL, p as call, r as createAccessibleLazyRouter, a as createContractedProcedure, h as createORPCErrorConstructorMap, q as getHiddenRouterContract, j as getLazyMeta, n as isStartWithMiddlewares, m as mergeCurrentContext, o as mergeMiddlewares, k as middlewareOutputFn, w as resolveContractProcedures, t as traverseContractProcedures, u as unlazy, x as unlazyRouter, v as validateORPCError } from './shared/server.DG7Tamti.mjs';
5
5
  import { toORPCError } from '@orpc/client';
6
6
  export { ORPCError, isDefinedError, safe } from '@orpc/client';
7
+ import { resolveMaybeOptionalOptions } from '@orpc/shared';
7
8
  export { onError, onFinish, onStart, onSuccess } from '@orpc/shared';
8
9
  export { getEventMeta, withEventMeta } from '@orpc/standard-server';
9
10
 
@@ -50,6 +51,9 @@ function createActionableClient(client) {
50
51
  try {
51
52
  return [null, await client(input)];
52
53
  } catch (error) {
54
+ if (error instanceof Error && "digest" in error && typeof error.digest === "string" && error.digest.startsWith("NEXT_")) {
55
+ throw error;
56
+ }
53
57
  return [toORPCError(error).toJSON(), void 0];
54
58
  }
55
59
  };
@@ -446,10 +450,10 @@ function implement(contract, config = {}) {
446
450
 
447
451
  function createRouterClient(router, ...rest) {
448
452
  if (isProcedure(router)) {
449
- const caller = createProcedureClient(router, ...rest);
453
+ const caller = createProcedureClient(router, resolveMaybeOptionalOptions(rest));
450
454
  return caller;
451
455
  }
452
- const procedureCaller = isLazy(router) ? createProcedureClient(createAssertedLazyProcedure(router), ...rest) : {};
456
+ const procedureCaller = isLazy(router) ? createProcedureClient(createAssertedLazyProcedure(router), resolveMaybeOptionalOptions(rest)) : {};
453
457
  const recursive = new Proxy(procedureCaller, {
454
458
  get(target, key) {
455
459
  if (typeof key !== "string") {
@@ -1,8 +1,8 @@
1
- import { Value } from '@orpc/shared';
1
+ import { Value, Promisable } from '@orpc/shared';
2
2
  import { StandardRequest, StandardHeaders } from '@orpc/standard-server';
3
3
  import { BatchResponseBodyItem } from '@orpc/standard-server/batch';
4
- import { S as StandardHandlerInterceptorOptions, a as StandardHandlerPlugin, b as StandardHandlerOptions } from '../shared/server.DY7OKEoj.mjs';
5
- import { C as Context, F as ProcedureClientInterceptorOptions } from '../shared/server.DPWk5pjW.mjs';
4
+ import { S as StandardHandlerInterceptorOptions, a as StandardHandlerPlugin, b as StandardHandlerOptions } from '../shared/server.Dq8xr7PQ.mjs';
5
+ import { C as Context, F as ProcedureClientInterceptorOptions } from '../shared/server.DD2C4ujN.mjs';
6
6
  import { Meta, ORPCError as ORPCError$1 } from '@orpc/contract';
7
7
  import { ORPCError } from '@orpc/client';
8
8
 
@@ -12,7 +12,7 @@ interface BatchHandlerOptions<T extends Context> {
12
12
  *
13
13
  * @default 10
14
14
  */
15
- maxSize?: Value<number, [StandardHandlerInterceptorOptions<T>]>;
15
+ maxSize?: Value<Promisable<number>, [StandardHandlerInterceptorOptions<T>]>;
16
16
  /**
17
17
  * Map the request before processing it.
18
18
  *
@@ -24,13 +24,13 @@ interface BatchHandlerOptions<T extends Context> {
24
24
  *
25
25
  * @default 207
26
26
  */
27
- successStatus?: Value<number, [responses: Promise<BatchResponseBodyItem>[], batchOptions: StandardHandlerInterceptorOptions<T>]>;
27
+ successStatus?: Value<Promisable<number>, [responses: Promise<BatchResponseBodyItem>[], batchOptions: StandardHandlerInterceptorOptions<T>]>;
28
28
  /**
29
29
  * success batch response headers.
30
30
  *
31
31
  * @default {}
32
32
  */
33
- headers?: Value<StandardHeaders, [responses: Promise<BatchResponseBodyItem>[], batchOptions: StandardHandlerInterceptorOptions<T>]>;
33
+ headers?: Value<Promisable<StandardHeaders>, [responses: Promise<BatchResponseBodyItem>[], batchOptions: StandardHandlerInterceptorOptions<T>]>;
34
34
  }
35
35
  /**
36
36
  * The Batch Request/Response Plugin allows you to combine multiple requests and responses into a single batch,
@@ -49,8 +49,8 @@ declare class BatchHandlerPlugin<T extends Context> implements StandardHandlerPl
49
49
  }
50
50
 
51
51
  interface CORSOptions<T extends Context> {
52
- origin?: Value<string | readonly string[] | null | undefined, [origin: string, options: StandardHandlerInterceptorOptions<T>]>;
53
- timingOrigin?: Value<string | readonly string[] | null | undefined, [origin: string, options: StandardHandlerInterceptorOptions<T>]>;
52
+ origin?: Value<Promisable<string | readonly string[] | null | undefined>, [origin: string, options: StandardHandlerInterceptorOptions<T>]>;
53
+ timingOrigin?: Value<Promisable<string | readonly string[] | null | undefined>, [origin: string, options: StandardHandlerInterceptorOptions<T>]>;
54
54
  allowMethods?: readonly string[];
55
55
  allowHeaders?: readonly string[];
56
56
  maxAge?: number;
@@ -88,21 +88,21 @@ interface SimpleCsrfProtectionHandlerPluginOptions<T extends Context> {
88
88
  *
89
89
  * @default 'x-csrf-token'
90
90
  */
91
- headerName?: Value<string, [options: StandardHandlerInterceptorOptions<T>]>;
91
+ headerName?: Value<Promisable<string>, [options: StandardHandlerInterceptorOptions<T>]>;
92
92
  /**
93
93
  * The value of the header to check.
94
94
  *
95
95
  * @default 'orpc'
96
96
  *
97
97
  */
98
- headerValue?: Value<string, [options: StandardHandlerInterceptorOptions<T>]>;
98
+ headerValue?: Value<Promisable<string>, [options: StandardHandlerInterceptorOptions<T>]>;
99
99
  /**
100
100
  * Exclude a procedure from the plugin.
101
101
  *
102
102
  * @default false
103
103
  *
104
104
  */
105
- exclude?: Value<boolean, [options: ProcedureClientInterceptorOptions<T, Record<never, never>, Meta>]>;
105
+ exclude?: Value<Promisable<boolean>, [options: ProcedureClientInterceptorOptions<T, Record<never, never>, Meta>]>;
106
106
  /**
107
107
  * The error thrown when the CSRF token is invalid.
108
108
  *
@@ -1,8 +1,8 @@
1
- import { Value } from '@orpc/shared';
1
+ import { Value, Promisable } from '@orpc/shared';
2
2
  import { StandardRequest, StandardHeaders } from '@orpc/standard-server';
3
3
  import { BatchResponseBodyItem } from '@orpc/standard-server/batch';
4
- import { S as StandardHandlerInterceptorOptions, a as StandardHandlerPlugin, b as StandardHandlerOptions } from '../shared/server.D5fBlF9j.js';
5
- import { C as Context, F as ProcedureClientInterceptorOptions } from '../shared/server.DPWk5pjW.js';
4
+ import { S as StandardHandlerInterceptorOptions, a as StandardHandlerPlugin, b as StandardHandlerOptions } from '../shared/server.-ACo36I0.js';
5
+ import { C as Context, F as ProcedureClientInterceptorOptions } from '../shared/server.DD2C4ujN.js';
6
6
  import { Meta, ORPCError as ORPCError$1 } from '@orpc/contract';
7
7
  import { ORPCError } from '@orpc/client';
8
8
 
@@ -12,7 +12,7 @@ interface BatchHandlerOptions<T extends Context> {
12
12
  *
13
13
  * @default 10
14
14
  */
15
- maxSize?: Value<number, [StandardHandlerInterceptorOptions<T>]>;
15
+ maxSize?: Value<Promisable<number>, [StandardHandlerInterceptorOptions<T>]>;
16
16
  /**
17
17
  * Map the request before processing it.
18
18
  *
@@ -24,13 +24,13 @@ interface BatchHandlerOptions<T extends Context> {
24
24
  *
25
25
  * @default 207
26
26
  */
27
- successStatus?: Value<number, [responses: Promise<BatchResponseBodyItem>[], batchOptions: StandardHandlerInterceptorOptions<T>]>;
27
+ successStatus?: Value<Promisable<number>, [responses: Promise<BatchResponseBodyItem>[], batchOptions: StandardHandlerInterceptorOptions<T>]>;
28
28
  /**
29
29
  * success batch response headers.
30
30
  *
31
31
  * @default {}
32
32
  */
33
- headers?: Value<StandardHeaders, [responses: Promise<BatchResponseBodyItem>[], batchOptions: StandardHandlerInterceptorOptions<T>]>;
33
+ headers?: Value<Promisable<StandardHeaders>, [responses: Promise<BatchResponseBodyItem>[], batchOptions: StandardHandlerInterceptorOptions<T>]>;
34
34
  }
35
35
  /**
36
36
  * The Batch Request/Response Plugin allows you to combine multiple requests and responses into a single batch,
@@ -49,8 +49,8 @@ declare class BatchHandlerPlugin<T extends Context> implements StandardHandlerPl
49
49
  }
50
50
 
51
51
  interface CORSOptions<T extends Context> {
52
- origin?: Value<string | readonly string[] | null | undefined, [origin: string, options: StandardHandlerInterceptorOptions<T>]>;
53
- timingOrigin?: Value<string | readonly string[] | null | undefined, [origin: string, options: StandardHandlerInterceptorOptions<T>]>;
52
+ origin?: Value<Promisable<string | readonly string[] | null | undefined>, [origin: string, options: StandardHandlerInterceptorOptions<T>]>;
53
+ timingOrigin?: Value<Promisable<string | readonly string[] | null | undefined>, [origin: string, options: StandardHandlerInterceptorOptions<T>]>;
54
54
  allowMethods?: readonly string[];
55
55
  allowHeaders?: readonly string[];
56
56
  maxAge?: number;
@@ -88,21 +88,21 @@ interface SimpleCsrfProtectionHandlerPluginOptions<T extends Context> {
88
88
  *
89
89
  * @default 'x-csrf-token'
90
90
  */
91
- headerName?: Value<string, [options: StandardHandlerInterceptorOptions<T>]>;
91
+ headerName?: Value<Promisable<string>, [options: StandardHandlerInterceptorOptions<T>]>;
92
92
  /**
93
93
  * The value of the header to check.
94
94
  *
95
95
  * @default 'orpc'
96
96
  *
97
97
  */
98
- headerValue?: Value<string, [options: StandardHandlerInterceptorOptions<T>]>;
98
+ headerValue?: Value<Promisable<string>, [options: StandardHandlerInterceptorOptions<T>]>;
99
99
  /**
100
100
  * Exclude a procedure from the plugin.
101
101
  *
102
102
  * @default false
103
103
  *
104
104
  */
105
- exclude?: Value<boolean, [options: ProcedureClientInterceptorOptions<T, Record<never, never>, Meta>]>;
105
+ exclude?: Value<Promisable<boolean>, [options: ProcedureClientInterceptorOptions<T, Record<never, never>, Meta>]>;
106
106
  /**
107
107
  * The error thrown when the CSRF token is invalid.
108
108
  *
@@ -1,5 +1,6 @@
1
1
  import { value, isAsyncIteratorObject } from '@orpc/shared';
2
2
  import { parseBatchRequest, toBatchResponse } from '@orpc/standard-server/batch';
3
+ import { flattenHeader } from '@orpc/standard-server';
3
4
  import { ORPCError } from '@orpc/client';
4
5
  export { S as StrictGetMethodPlugin } from '../shared/server.BW-nUGgA.mjs';
5
6
  import '@orpc/contract';
@@ -123,13 +124,11 @@ class CORSPlugin {
123
124
  resHeaders["access-control-max-age"] = this.options.maxAge.toString();
124
125
  }
125
126
  if (this.options.allowMethods?.length) {
126
- resHeaders["access-control-allow-methods"] = this.options.allowMethods.join(",");
127
+ resHeaders["access-control-allow-methods"] = flattenHeader(this.options.allowMethods);
127
128
  }
128
129
  const allowHeaders = this.options.allowHeaders ?? interceptorOptions.request.headers["access-control-request-headers"];
129
- if (Array.isArray(allowHeaders) && allowHeaders.length) {
130
- resHeaders["access-control-allow-headers"] = allowHeaders.join(",");
131
- } else if (typeof allowHeaders === "string") {
132
- resHeaders["access-control-allow-headers"] = allowHeaders;
130
+ if (typeof allowHeaders === "string" || allowHeaders?.length) {
131
+ resHeaders["access-control-allow-headers"] = flattenHeader(allowHeaders);
133
132
  }
134
133
  return {
135
134
  matched: true,
@@ -147,7 +146,7 @@ class CORSPlugin {
147
146
  if (!result.matched) {
148
147
  return result;
149
148
  }
150
- const origin = Array.isArray(interceptorOptions.request.headers.origin) ? interceptorOptions.request.headers.origin.join(",") : interceptorOptions.request.headers.origin || "";
149
+ const origin = flattenHeader(interceptorOptions.request.headers.origin) ?? "";
151
150
  const allowedOrigin = await value(this.options.origin, origin, interceptorOptions);
152
151
  const allowedOriginArr = Array.isArray(allowedOrigin) ? allowedOrigin : [allowedOrigin];
153
152
  if (allowedOriginArr.includes("*")) {
@@ -169,7 +168,7 @@ class CORSPlugin {
169
168
  result.response.headers["access-control-allow-credentials"] = "true";
170
169
  }
171
170
  if (this.options.exposeHeaders?.length) {
172
- result.response.headers["access-control-expose-headers"] = this.options.exposeHeaders.join(",");
171
+ result.response.headers["access-control-expose-headers"] = flattenHeader(this.options.exposeHeaders);
173
172
  }
174
173
  return result;
175
174
  });
@@ -1,17 +1,17 @@
1
1
  import { HTTPPath, ORPCError } from '@orpc/client';
2
- import { Meta, InferSchemaOutput, AnySchema, ErrorFromErrorMap } from '@orpc/contract';
3
- import { Interceptor, ThrowableError } from '@orpc/shared';
2
+ import { Meta } from '@orpc/contract';
3
+ import { Interceptor } from '@orpc/shared';
4
4
  import { StandardResponse, StandardLazyRequest } from '@orpc/standard-server';
5
- import { C as Context, f as AnyRouter, h as AnyProcedure, F as ProcedureClientInterceptorOptions, R as Router } from './server.DPWk5pjW.js';
5
+ import { C as Context, R as Router, f as AnyRouter, h as AnyProcedure, F as ProcedureClientInterceptorOptions } from './server.DD2C4ujN.js';
6
6
 
7
- interface StandardHandlerPlugin<TContext extends Context> {
7
+ interface StandardHandlerPlugin<T extends Context> {
8
8
  order?: number;
9
- init?(options: StandardHandlerOptions<TContext>): void;
9
+ init?(options: StandardHandlerOptions<T>, router: Router<any, T>): void;
10
10
  }
11
11
  declare class CompositeStandardHandlerPlugin<T extends Context, TPlugin extends StandardHandlerPlugin<T>> implements StandardHandlerPlugin<T> {
12
12
  protected readonly plugins: TPlugin[];
13
13
  constructor(plugins?: readonly TPlugin[]);
14
- init(options: StandardHandlerOptions<T>): void;
14
+ init(options: StandardHandlerOptions<T>, router: Router<any, T>): void;
15
15
  }
16
16
 
17
17
  type StandardParams = Record<string, string>;
@@ -49,16 +49,16 @@ interface StandardHandlerOptions<TContext extends Context> {
49
49
  /**
50
50
  * Interceptors at the request level, helpful when you want catch errors
51
51
  */
52
- interceptors?: Interceptor<StandardHandlerInterceptorOptions<TContext>, StandardHandleResult, ThrowableError>[];
52
+ interceptors?: Interceptor<StandardHandlerInterceptorOptions<TContext>, Promise<StandardHandleResult>>[];
53
53
  /**
54
54
  * Interceptors at the root level, helpful when you want override the request/response
55
55
  */
56
- rootInterceptors?: Interceptor<StandardHandlerInterceptorOptions<TContext>, StandardHandleResult, ThrowableError>[];
56
+ rootInterceptors?: Interceptor<StandardHandlerInterceptorOptions<TContext>, Promise<StandardHandleResult>>[];
57
57
  /**
58
58
  *
59
59
  * Interceptors for procedure client.
60
60
  */
61
- clientInterceptors?: Interceptor<ProcedureClientInterceptorOptions<TContext, Record<never, never>, Meta>, InferSchemaOutput<AnySchema>, ErrorFromErrorMap<Record<never, never>>>[];
61
+ clientInterceptors?: Interceptor<ProcedureClientInterceptorOptions<TContext, Record<never, never>, Meta>, Promise<unknown>>[];
62
62
  }
63
63
  declare class StandardHandler<T extends Context> {
64
64
  private readonly matcher;