@orpc/server 2.0.0-beta.2 → 2.0.0-beta.4

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/README.md CHANGED
@@ -37,18 +37,19 @@ You can read the documentation [here](https://orpc.dev).
37
37
  - [@orpc/valibot](https://www.npmjs.com/package/@orpc/valibot): Integrate with [Valibot](https://valibot.dev/).
38
38
  - [@orpc/arktype](https://www.npmjs.com/package/@orpc/arktype): Integrate with [ArkType](https://arktype.io/).
39
39
 
40
- **Framework & ecosystem integrations**
41
-
42
- - [@orpc/next](https://www.npmjs.com/package/@orpc/react): Use oRPC with [Next.js Server Functions](https://nextjs.org/docs/app/getting-started/mutating-data).
43
- - [@orpc/tanstack-query](https://www.npmjs.com/package/@orpc/tanstack-query): Integrate with [TanStack Query](https://tanstack.com/query/latest).
44
- - [@orpc/experimental-effect](https://www.npmjs.com/package/@orpc/experimental-effect): Integrate with [Effect](https://effect.website/).
45
-
46
40
  **Built-in features**
47
41
 
48
42
  - [@orpc/publisher](https://www.npmjs.com/package/@orpc/publisher): Pub/Sub.
49
43
  - [@orpc/ratelimit](https://www.npmjs.com/package/@orpc/ratelimit): Rate limiting.
50
44
  - [@orpc/json-schema](https://www.npmjs.com/package/@orpc/json-schema): Smart coercion for OpenAPI requests.
51
45
 
46
+ **Framework & ecosystem integrations**
47
+
48
+ - [@orpc/next](https://www.npmjs.com/package/@orpc/react): Use oRPC with [Next.js Server Functions](https://nextjs.org/docs/app/getting-started/mutating-data).
49
+ - [@orpc/tanstack-query](https://www.npmjs.com/package/@orpc/tanstack-query): Integrate with [TanStack Query](https://tanstack.com/query/latest).
50
+ - [@orpc/experimental-effect](https://www.npmjs.com/package/@orpc/experimental-effect): Integrate with [Effect](https://effect.website/).
51
+ - [@orpc/nest](https://www.npmjs.com/package/@orpc/nest): Implement your contract with [NestJS](https://nestjs.com/).
52
+
52
53
  **Observability**
53
54
 
54
55
  - [@orpc/opentelemetry](https://www.npmjs.com/package/@orpc/opentelemetry): Instrument your API with [OpenTelemetry](https://opentelemetry.io/).
@@ -150,7 +151,7 @@ Like what we build over at [middleapi](https://github.com/middleapi)? You can he
150
151
  <a href="https://github.com/theoludwig?ref=orpc" target="_blank" rel="noopener" title="Théo LUDWIG"><img src="https://avatars.githubusercontent.com/u/25207499?u=a6a9653725a2f574c07893748806668e0598cdbe&amp;v=4" width="32" height="32" alt="Théo LUDWIG" /></a>
151
152
  <a href="https://github.com/abhay-ramesh?ref=orpc" target="_blank" rel="noopener" title="Abhay Ramesh"><img src="https://avatars.githubusercontent.com/u/66196314?u=c5c2b0327b26606c2efcfaf17046ab18c3d25c57&amp;v=4" width="32" height="32" alt="Abhay Ramesh" /></a>
152
153
  <a href="https://github.com/shr-ink?ref=orpc" target="_blank" rel="noopener" title="shr.ink oü"><img src="https://avatars.githubusercontent.com/u/139700438?v=4" width="32" height="32" alt="shr.ink oü" /></a>
153
- <a href="https://github.com/johngerome?ref=orpc" target="_blank" rel="noopener" title="0x4e32"><img src="https://avatars.githubusercontent.com/u/2002000?u=24e8dd943cfc862aa284d858a023532c75071ade&amp;v=4" width="32" height="32" alt="0x4e32" /></a>
154
+ <a href="https://github.com/johngerome?ref=orpc" target="_blank" rel="noopener" title="0x4e32"><img src="https://avatars.githubusercontent.com/u/2002000?u=505e54608466ab53754f702973687b04c6424c1f&amp;v=4" width="32" height="32" alt="0x4e32" /></a>
154
155
  <a href="https://github.com/yzuyr?ref=orpc" target="_blank" rel="noopener" title="Ryuz"><img src="https://avatars.githubusercontent.com/u/196539378?u=d38374588d219b6748b16406982f6559411466d4&amp;v=4" width="32" height="32" alt="Ryuz" /></a>
155
156
  <a href="https://github.com/happyboy2022?ref=orpc" target="_blank" rel="noopener" title="happyboy"><img src="https://avatars.githubusercontent.com/u/103669586?u=65b49c4b893ed3703909fbb3a7a22313f3f9c121&amp;v=4" width="32" height="32" alt="happyboy" /></a>
156
157
  <a href="https://github.com/YiCChi?ref=orpc" target="_blank" rel="noopener" title="yicchi"><img src="https://avatars.githubusercontent.com/u/86967274?u=6c2756f09fe15dd94d572f560e979cd157982852&amp;v=4" width="32" height="32" alt="yicchi" /></a>
@@ -2,10 +2,10 @@ import { MaybeOptionalOptions } from '@orpc/shared';
2
2
  import { EncodePeerMessageOptions, DecodePeerMessageOptions } from '@standardserver/peer';
3
3
  import { Message, Peer } from 'crossws';
4
4
  import { C as Context } from '../../shared/server.BL22TloH.mjs';
5
- import { S as StandardHandler, a as StandardHandlerOptions } from '../../shared/server.BB_Ik9Ph.mjs';
5
+ import { S as StandardHandler, a as StandardHandlerOptions } from '../../shared/server.DJIkub_t.mjs';
6
6
  import { StandardPeerRequestHandlerOptions } from '../standard-peer/index.mjs';
7
7
  import { R as Router } from '../../shared/server.BsNNjG5J.mjs';
8
- import { R as RPCHandlerCodecOptions } from '../../shared/server.B_U9y00a.mjs';
8
+ import { R as RPCHandlerCodecOptions } from '../../shared/server.Cj5lgPuG.mjs';
9
9
  import '@orpc/client';
10
10
  import '@orpc/contract';
11
11
  import '@standardserver/core';
@@ -2,10 +2,10 @@ import { MaybeOptionalOptions } from '@orpc/shared';
2
2
  import { EncodePeerMessageOptions, DecodePeerMessageOptions } from '@standardserver/peer';
3
3
  import { Message, Peer } from 'crossws';
4
4
  import { C as Context } from '../../shared/server.BL22TloH.js';
5
- import { S as StandardHandler, a as StandardHandlerOptions } from '../../shared/server.EOHJ3NJr.js';
5
+ import { S as StandardHandler, a as StandardHandlerOptions } from '../../shared/server.DBANIheG.js';
6
6
  import { StandardPeerRequestHandlerOptions } from '../standard-peer/index.js';
7
7
  import { R as Router } from '../../shared/server.Pa0F03f_.js';
8
- import { R as RPCHandlerCodecOptions } from '../../shared/server.T9F3bzZx.js';
8
+ import { R as RPCHandlerCodecOptions } from '../../shared/server.d_2NS3g5.js';
9
9
  import '@orpc/client';
10
10
  import '@orpc/contract';
11
11
  import '@standardserver/core';
@@ -1,10 +1,10 @@
1
1
  import { C as Context } from '../../shared/server.BL22TloH.mjs';
2
2
  import { Interceptor, MaybeOptionalOptions } from '@orpc/shared';
3
3
  import { ToFetchResponseOptions } from '@standardserver/fetch';
4
- import { e as StandardHandlerPlugin, b as StandardHandlerHandleOptions, S as StandardHandler, a as StandardHandlerOptions } from '../../shared/server.BB_Ik9Ph.mjs';
4
+ import { e as StandardHandlerPlugin, b as StandardHandlerHandleOptions, S as StandardHandler, a as StandardHandlerOptions } from '../../shared/server.DJIkub_t.mjs';
5
5
  import { FriendlyStandardHandlerHandleOptions } from '../standard/index.mjs';
6
6
  import { R as Router } from '../../shared/server.BsNNjG5J.mjs';
7
- import { R as RPCHandlerCodecOptions } from '../../shared/server.B_U9y00a.mjs';
7
+ import { R as RPCHandlerCodecOptions } from '../../shared/server.Cj5lgPuG.mjs';
8
8
  import '@orpc/client';
9
9
  import '@orpc/contract';
10
10
  import '@standardserver/core';
@@ -53,9 +53,9 @@ interface FetchHandlerFetchInterceptorOptions<T extends Context> extends Standar
53
53
  type FetchHandlerFetchInterceptor<T extends Context> = Interceptor<FetchHandlerFetchInterceptorOptions<T>, Promise<FetchHandlerHandleResult>>;
54
54
  interface FetchHandlerOptions<T extends Context> {
55
55
  /**
56
- * Custom options for `toFetchResponse`, used to map a `Standard Response` to a `Fetch Response`.
56
+ * Options for how to convert the Fetch Response to a Standard Response, like event iterator options, etc.
57
57
  */
58
- toFetchResponse?: ToFetchResponseOptions;
58
+ toFetchResponse?: undefined | ToFetchResponseOptions;
59
59
  /**
60
60
  * Interceptors that run before the mapping between the Standard API and Fetch API,
61
61
  * useful for customizing the mapping behavior (e.g. extending the body parser).
@@ -1,10 +1,10 @@
1
1
  import { C as Context } from '../../shared/server.BL22TloH.js';
2
2
  import { Interceptor, MaybeOptionalOptions } from '@orpc/shared';
3
3
  import { ToFetchResponseOptions } from '@standardserver/fetch';
4
- import { e as StandardHandlerPlugin, b as StandardHandlerHandleOptions, S as StandardHandler, a as StandardHandlerOptions } from '../../shared/server.EOHJ3NJr.js';
4
+ import { e as StandardHandlerPlugin, b as StandardHandlerHandleOptions, S as StandardHandler, a as StandardHandlerOptions } from '../../shared/server.DBANIheG.js';
5
5
  import { FriendlyStandardHandlerHandleOptions } from '../standard/index.js';
6
6
  import { R as Router } from '../../shared/server.Pa0F03f_.js';
7
- import { R as RPCHandlerCodecOptions } from '../../shared/server.T9F3bzZx.js';
7
+ import { R as RPCHandlerCodecOptions } from '../../shared/server.d_2NS3g5.js';
8
8
  import '@orpc/client';
9
9
  import '@orpc/contract';
10
10
  import '@standardserver/core';
@@ -53,9 +53,9 @@ interface FetchHandlerFetchInterceptorOptions<T extends Context> extends Standar
53
53
  type FetchHandlerFetchInterceptor<T extends Context> = Interceptor<FetchHandlerFetchInterceptorOptions<T>, Promise<FetchHandlerHandleResult>>;
54
54
  interface FetchHandlerOptions<T extends Context> {
55
55
  /**
56
- * Custom options for `toFetchResponse`, used to map a `Standard Response` to a `Fetch Response`.
56
+ * Options for how to convert the Fetch Response to a Standard Response, like event iterator options, etc.
57
57
  */
58
- toFetchResponse?: ToFetchResponseOptions;
58
+ toFetchResponse?: undefined | ToFetchResponseOptions;
59
59
  /**
60
60
  * Interceptors that run before the mapping between the Standard API and Fetch API,
61
61
  * useful for customizing the mapping behavior (e.g. extending the body parser).
@@ -2,10 +2,10 @@ import { SupportedMessagePort } from '@orpc/client/message-port';
2
2
  import { Value, Promisable, MaybeOptionalOptions } from '@orpc/shared';
3
3
  import { ServerPeer, EncodePeerMessageOptions, DecodePeerMessageOptions } from '@standardserver/peer';
4
4
  import { C as Context } from '../../shared/server.BL22TloH.mjs';
5
- import { S as StandardHandler, a as StandardHandlerOptions } from '../../shared/server.BB_Ik9Ph.mjs';
5
+ import { S as StandardHandler, a as StandardHandlerOptions } from '../../shared/server.DJIkub_t.mjs';
6
6
  import { StandardPeerRequestHandlerOptions } from '../standard-peer/index.mjs';
7
7
  import { R as Router } from '../../shared/server.BsNNjG5J.mjs';
8
- import { R as RPCHandlerCodecOptions } from '../../shared/server.B_U9y00a.mjs';
8
+ import { R as RPCHandlerCodecOptions } from '../../shared/server.Cj5lgPuG.mjs';
9
9
  import '@orpc/client';
10
10
  import '@orpc/contract';
11
11
  import '@standardserver/core';
@@ -2,10 +2,10 @@ import { SupportedMessagePort } from '@orpc/client/message-port';
2
2
  import { Value, Promisable, MaybeOptionalOptions } from '@orpc/shared';
3
3
  import { ServerPeer, EncodePeerMessageOptions, DecodePeerMessageOptions } from '@standardserver/peer';
4
4
  import { C as Context } from '../../shared/server.BL22TloH.js';
5
- import { S as StandardHandler, a as StandardHandlerOptions } from '../../shared/server.EOHJ3NJr.js';
5
+ import { S as StandardHandler, a as StandardHandlerOptions } from '../../shared/server.DBANIheG.js';
6
6
  import { StandardPeerRequestHandlerOptions } from '../standard-peer/index.js';
7
7
  import { R as Router } from '../../shared/server.Pa0F03f_.js';
8
- import { R as RPCHandlerCodecOptions } from '../../shared/server.T9F3bzZx.js';
8
+ import { R as RPCHandlerCodecOptions } from '../../shared/server.d_2NS3g5.js';
9
9
  import '@orpc/client';
10
10
  import '@orpc/contract';
11
11
  import '@standardserver/core';
@@ -1,11 +1,11 @@
1
1
  import { SendStandardResponseOptions, NodeHttpRequest, NodeHttpResponse } from '@standardserver/node';
2
2
  import { C as Context } from '../../shared/server.BL22TloH.mjs';
3
3
  import { Interceptor, MaybeOptionalOptions } from '@orpc/shared';
4
- import { e as StandardHandlerPlugin, b as StandardHandlerHandleOptions, S as StandardHandler, a as StandardHandlerOptions } from '../../shared/server.BB_Ik9Ph.mjs';
4
+ import { e as StandardHandlerPlugin, b as StandardHandlerHandleOptions, S as StandardHandler, a as StandardHandlerOptions } from '../../shared/server.DJIkub_t.mjs';
5
5
  import { FriendlyStandardHandlerHandleOptions } from '../standard/index.mjs';
6
6
  import compression from '@orpc/interop/compression';
7
7
  import { R as Router } from '../../shared/server.BsNNjG5J.mjs';
8
- import { R as RPCHandlerCodecOptions } from '../../shared/server.B_U9y00a.mjs';
8
+ import { R as RPCHandlerCodecOptions } from '../../shared/server.Cj5lgPuG.mjs';
9
9
  import '@orpc/client';
10
10
  import '@orpc/contract';
11
11
  import '@standardserver/core';
@@ -1,11 +1,11 @@
1
1
  import { SendStandardResponseOptions, NodeHttpRequest, NodeHttpResponse } from '@standardserver/node';
2
2
  import { C as Context } from '../../shared/server.BL22TloH.js';
3
3
  import { Interceptor, MaybeOptionalOptions } from '@orpc/shared';
4
- import { e as StandardHandlerPlugin, b as StandardHandlerHandleOptions, S as StandardHandler, a as StandardHandlerOptions } from '../../shared/server.EOHJ3NJr.js';
4
+ import { e as StandardHandlerPlugin, b as StandardHandlerHandleOptions, S as StandardHandler, a as StandardHandlerOptions } from '../../shared/server.DBANIheG.js';
5
5
  import { FriendlyStandardHandlerHandleOptions } from '../standard/index.js';
6
6
  import compression from '@orpc/interop/compression';
7
7
  import { R as Router } from '../../shared/server.Pa0F03f_.js';
8
- import { R as RPCHandlerCodecOptions } from '../../shared/server.T9F3bzZx.js';
8
+ import { R as RPCHandlerCodecOptions } from '../../shared/server.d_2NS3g5.js';
9
9
  import '@orpc/client';
10
10
  import '@orpc/contract';
11
11
  import '@standardserver/core';
@@ -1,10 +1,10 @@
1
- import { b as StandardHandlerHandleOptions } from '../../shared/server.BB_Ik9Ph.mjs';
2
- export { C as CompositeStandardHandlerPlugin, O as OtelHandlerPlugin, S as StandardHandler, c as StandardHandlerCodec, d as StandardHandlerCodecResolvedProcedure, g as StandardHandlerHandleResult, h as StandardHandlerInterceptor, i as StandardHandlerInterceptorOptions, a as StandardHandlerOptions, e as StandardHandlerPlugin, j as StandardHandlerRoutingInterceptor, f as StandardHandlerRoutingInterceptorOptions } from '../../shared/server.BB_Ik9Ph.mjs';
3
- export { a as RPCHandlerCodec, R as RPCHandlerCodecOptions, b as RPCMatcher, c as RPCMatcherOptions } from '../../shared/server.B_U9y00a.mjs';
1
+ import { b as StandardHandlerHandleOptions } from '../../shared/server.DJIkub_t.mjs';
2
+ export { C as CompositeStandardHandlerPlugin, O as OtelHandlerPlugin, S as StandardHandler, c as StandardHandlerCodec, d as StandardHandlerCodecResolvedProcedure, h as StandardHandlerHandleResult, i as StandardHandlerInterceptor, g as StandardHandlerInterceptorOptions, a as StandardHandlerOptions, e as StandardHandlerPlugin, j as StandardHandlerRoutingInterceptor, f as StandardHandlerRoutingInterceptorOptions } from '../../shared/server.DJIkub_t.mjs';
3
+ export { a as RPCHandlerCodec, R as RPCHandlerCodecOptions, b as RPCMatcher, c as RPCMatcherOptions } from '../../shared/server.Cj5lgPuG.mjs';
4
4
  import { C as Context } from '../../shared/server.BL22TloH.mjs';
5
+ export { StandardBody, StandardBodyHint, StandardHeaders, StandardLazyRequest, StandardLazyResponse, StandardMethod, StandardRequest, StandardResponse, StandardUrl } from '@standardserver/core';
5
6
  import '@orpc/client';
6
7
  import '@orpc/shared';
7
- import '@standardserver/core';
8
8
  import '@orpc/contract';
9
9
  import '../../shared/server.BsNNjG5J.mjs';
10
10
 
@@ -1,10 +1,10 @@
1
- import { b as StandardHandlerHandleOptions } from '../../shared/server.EOHJ3NJr.js';
2
- export { C as CompositeStandardHandlerPlugin, O as OtelHandlerPlugin, S as StandardHandler, c as StandardHandlerCodec, d as StandardHandlerCodecResolvedProcedure, g as StandardHandlerHandleResult, h as StandardHandlerInterceptor, i as StandardHandlerInterceptorOptions, a as StandardHandlerOptions, e as StandardHandlerPlugin, j as StandardHandlerRoutingInterceptor, f as StandardHandlerRoutingInterceptorOptions } from '../../shared/server.EOHJ3NJr.js';
3
- export { a as RPCHandlerCodec, R as RPCHandlerCodecOptions, b as RPCMatcher, c as RPCMatcherOptions } from '../../shared/server.T9F3bzZx.js';
1
+ import { b as StandardHandlerHandleOptions } from '../../shared/server.DBANIheG.js';
2
+ export { C as CompositeStandardHandlerPlugin, O as OtelHandlerPlugin, S as StandardHandler, c as StandardHandlerCodec, d as StandardHandlerCodecResolvedProcedure, h as StandardHandlerHandleResult, i as StandardHandlerInterceptor, g as StandardHandlerInterceptorOptions, a as StandardHandlerOptions, e as StandardHandlerPlugin, j as StandardHandlerRoutingInterceptor, f as StandardHandlerRoutingInterceptorOptions } from '../../shared/server.DBANIheG.js';
3
+ export { a as RPCHandlerCodec, R as RPCHandlerCodecOptions, b as RPCMatcher, c as RPCMatcherOptions } from '../../shared/server.d_2NS3g5.js';
4
4
  import { C as Context } from '../../shared/server.BL22TloH.js';
5
+ export { StandardBody, StandardBodyHint, StandardHeaders, StandardLazyRequest, StandardLazyResponse, StandardMethod, StandardRequest, StandardResponse, StandardUrl } from '@standardserver/core';
5
6
  import '@orpc/client';
6
7
  import '@orpc/shared';
7
- import '@standardserver/core';
8
8
  import '@orpc/contract';
9
9
  import '../../shared/server.Pa0F03f_.js';
10
10
 
@@ -1,7 +1,7 @@
1
1
  import { Value, Promisable } from '@orpc/shared';
2
2
  import { StandardLazyRequest, StandardResponse } from '@standardserver/core';
3
3
  import { C as Context } from '../../shared/server.BL22TloH.mjs';
4
- import { b as StandardHandlerHandleOptions, S as StandardHandler } from '../../shared/server.BB_Ik9Ph.mjs';
4
+ import { b as StandardHandlerHandleOptions, S as StandardHandler } from '../../shared/server.DJIkub_t.mjs';
5
5
  import '@orpc/client';
6
6
  import '@orpc/contract';
7
7
 
@@ -1,7 +1,7 @@
1
1
  import { Value, Promisable } from '@orpc/shared';
2
2
  import { StandardLazyRequest, StandardResponse } from '@standardserver/core';
3
3
  import { C as Context } from '../../shared/server.BL22TloH.js';
4
- import { b as StandardHandlerHandleOptions, S as StandardHandler } from '../../shared/server.EOHJ3NJr.js';
4
+ import { b as StandardHandlerHandleOptions, S as StandardHandler } from '../../shared/server.DBANIheG.js';
5
5
  import '@orpc/client';
6
6
  import '@orpc/contract';
7
7
 
@@ -1,10 +1,10 @@
1
1
  import { MaybeOptionalOptions } from '@orpc/shared';
2
2
  import { EncodePeerMessageOptions, DecodePeerMessageOptions } from '@standardserver/peer';
3
3
  import { C as Context } from '../../shared/server.BL22TloH.mjs';
4
- import { S as StandardHandler, a as StandardHandlerOptions } from '../../shared/server.BB_Ik9Ph.mjs';
4
+ import { S as StandardHandler, a as StandardHandlerOptions } from '../../shared/server.DJIkub_t.mjs';
5
5
  import { StandardPeerRequestHandlerOptions } from '../standard-peer/index.mjs';
6
6
  import { R as Router } from '../../shared/server.BsNNjG5J.mjs';
7
- import { R as RPCHandlerCodecOptions } from '../../shared/server.B_U9y00a.mjs';
7
+ import { R as RPCHandlerCodecOptions } from '../../shared/server.Cj5lgPuG.mjs';
8
8
  import '@orpc/client';
9
9
  import '@orpc/contract';
10
10
  import '@standardserver/core';
@@ -1,10 +1,10 @@
1
1
  import { MaybeOptionalOptions } from '@orpc/shared';
2
2
  import { EncodePeerMessageOptions, DecodePeerMessageOptions } from '@standardserver/peer';
3
3
  import { C as Context } from '../../shared/server.BL22TloH.js';
4
- import { S as StandardHandler, a as StandardHandlerOptions } from '../../shared/server.EOHJ3NJr.js';
4
+ import { S as StandardHandler, a as StandardHandlerOptions } from '../../shared/server.DBANIheG.js';
5
5
  import { StandardPeerRequestHandlerOptions } from '../standard-peer/index.js';
6
6
  import { R as Router } from '../../shared/server.Pa0F03f_.js';
7
- import { R as RPCHandlerCodecOptions } from '../../shared/server.T9F3bzZx.js';
7
+ import { R as RPCHandlerCodecOptions } from '../../shared/server.d_2NS3g5.js';
8
8
  import '@orpc/client';
9
9
  import '@orpc/contract';
10
10
  import '@standardserver/core';
package/dist/index.d.mts CHANGED
@@ -1,14 +1,14 @@
1
1
  import { AnyORPCError, ClientOptions, ClientContext } from '@orpc/client';
2
- export { AnyORPCError, AnyORPCErrorJSON, COMMON_ERROR_STATUS_MAP, ORPCError, ORPCErrorCode, ORPCErrorJSON, ORPCErrorOptions, RPCJsonSerialization, RPCJsonSerializationMeta, RPCJsonSerializer, RPCJsonSerializerHandler, RPCJsonSerializerOptions, RPCSerializer, RPCSerializerOptions, RPCSerializerSerializeOptions, cloneORPCError, isDefinedError, isInferableError, safe, toORPCError } from '@orpc/client';
2
+ export { AnyORPCError, AnyORPCErrorJSON, COMMON_ERROR_STATUS_MAP, Client, ClientContext, ClientOptions, ClientRest, FriendlyClientOptions, ORPCError, ORPCErrorCode, ORPCErrorJSON, ORPCErrorOptions, RPCJsonSerialization, RPCJsonSerializationMeta, RPCJsonSerializer, RPCJsonSerializerHandler, RPCJsonSerializerOptions, RPCSerializer, RPCSerializerOptions, RPCSerializerSerializeOptions, SafeResult, cloneORPCError, isDefinedError, isInferableError, safe, toORPCError } from '@orpc/client';
3
3
  import { ErrorMap, MergedErrorMap, AnySchema, MetaPlugin, InferSchemaOutput, InferSchemaInput, AugmentContractRouterOptions, RouterContract, AnyProcedureContract, InitialInputSchema, InitialOutputSchema, MergedSchema, Schema, ProcedureContractDefinition, ProcedureContract, InferRouterContractErrorMap, ORPCErrorFromErrorMap } from '@orpc/contract';
4
4
  export { AnyMetaPlugin, AnySchema, ErrorMap, ErrorMapItem, InferSchemaInput, InferSchemaOutput, MergedErrorMap, Meta, MetaPlugin, MetaPluginDefinition, ORPCErrorFromErrorMap, ProcedureContract, ProcedureContractDefinition, RouterContract, Schema, ValidationError, defineMeta, eventIterator, reconcileORPCError, type } from '@orpc/contract';
5
5
  import { IntersectPick, Promisable, Public, PromiseWithError, ThrowableError, MaybeOptionalOptions } from '@orpc/shared';
6
- export { AsyncCleanupFn, AsyncIteratorClass, AsyncIteratorClassNextFn, Registry, ThrowableError, asyncIteratorToStream as eventIteratorToStream, asyncIteratorToUnproxiedDataStream as eventIteratorToUnproxiedDataStream, onError, onFinish, onStart, onSuccess, streamToAsyncIteratorClass as streamToEventIterator } from '@orpc/shared';
6
+ export { AsyncCleanupFn, AsyncIteratorClass, AsyncIteratorClassNextFn, MaybeOptionalOptions, PromiseWithError, Registry, ThrowableError, asyncIteratorToStream as eventIteratorToStream, asyncIteratorToUnproxiedDataStream as eventIteratorToUnproxiedDataStream, onError, onFinish, onStart, onSuccess, streamToAsyncIteratorClass as streamToEventIterator } from '@orpc/shared';
7
7
  import { C as Context, d as Middleware, M as MergedContext, e as MergedInitialContext, a as Procedure, f as AnyMiddleware, g as Lazy, A as AnyProcedure, L as Lazyable, h as ProcedureHandler, O as ORPCErrorConstructorMap, i as OrderedMiddleware, P as ProcedureClientOptions, b as ProcedureClient } from './shared/server.BL22TloH.mjs';
8
8
  export { j as LazyDefinition, k as MiddlewareDefinition, l as MiddlewareDone, m as MiddlewareDoneOptions, n as MiddlewareNext, o as MiddlewareNextOptions, p as MiddlewareOptions, q as MiddlewareResult, r as ORPCErrorConstructorMapItem, s as ORPCErrorConstructorMapItemOptions, c as ProcedureClientInterceptor, t as ProcedureClientInterceptorOptions, u as ProcedureDefinition, v as ProcedureHandlerOptions, w as createORPCErrorConstructorMap, x as createProcedureClient, y as unlazy } from './shared/server.BL22TloH.mjs';
9
9
  import { A as AnyRouter, R as Router, C as ContractedRouter, I as InferRouterInitialContext } from './shared/server.BsNNjG5J.mjs';
10
10
  export { a as InferRouterError, b as InferRouterErrors, c as InferRouterFinalContexts, d as InferRouterInitialContexts, e as InferRouterInputs, f as InferRouterOutputs } from './shared/server.BsNNjG5J.mjs';
11
- export { ErrorEvent, getEventMeta, unwrapEvent, withEventMeta } from '@standardserver/core';
11
+ export { ErrorEvent, EventMeta, getEventMeta, unwrapEvent, withEventMeta } from '@standardserver/core';
12
12
 
13
13
  interface DecoratedMiddleware<TInContext extends Context, TOutContext extends Context, TInput, TOutput, TErrorMap extends ErrorMap> extends Middleware<TInContext, TOutContext, TInput, TOutput, TErrorMap> {
14
14
  adaptInput<T>(adapt: (input: T) => TInput): DecoratedMiddleware<TInContext, TOutContext, T, TOutput, TErrorMap>;
package/dist/index.d.ts CHANGED
@@ -1,14 +1,14 @@
1
1
  import { AnyORPCError, ClientOptions, ClientContext } from '@orpc/client';
2
- export { AnyORPCError, AnyORPCErrorJSON, COMMON_ERROR_STATUS_MAP, ORPCError, ORPCErrorCode, ORPCErrorJSON, ORPCErrorOptions, RPCJsonSerialization, RPCJsonSerializationMeta, RPCJsonSerializer, RPCJsonSerializerHandler, RPCJsonSerializerOptions, RPCSerializer, RPCSerializerOptions, RPCSerializerSerializeOptions, cloneORPCError, isDefinedError, isInferableError, safe, toORPCError } from '@orpc/client';
2
+ export { AnyORPCError, AnyORPCErrorJSON, COMMON_ERROR_STATUS_MAP, Client, ClientContext, ClientOptions, ClientRest, FriendlyClientOptions, ORPCError, ORPCErrorCode, ORPCErrorJSON, ORPCErrorOptions, RPCJsonSerialization, RPCJsonSerializationMeta, RPCJsonSerializer, RPCJsonSerializerHandler, RPCJsonSerializerOptions, RPCSerializer, RPCSerializerOptions, RPCSerializerSerializeOptions, SafeResult, cloneORPCError, isDefinedError, isInferableError, safe, toORPCError } from '@orpc/client';
3
3
  import { ErrorMap, MergedErrorMap, AnySchema, MetaPlugin, InferSchemaOutput, InferSchemaInput, AugmentContractRouterOptions, RouterContract, AnyProcedureContract, InitialInputSchema, InitialOutputSchema, MergedSchema, Schema, ProcedureContractDefinition, ProcedureContract, InferRouterContractErrorMap, ORPCErrorFromErrorMap } from '@orpc/contract';
4
4
  export { AnyMetaPlugin, AnySchema, ErrorMap, ErrorMapItem, InferSchemaInput, InferSchemaOutput, MergedErrorMap, Meta, MetaPlugin, MetaPluginDefinition, ORPCErrorFromErrorMap, ProcedureContract, ProcedureContractDefinition, RouterContract, Schema, ValidationError, defineMeta, eventIterator, reconcileORPCError, type } from '@orpc/contract';
5
5
  import { IntersectPick, Promisable, Public, PromiseWithError, ThrowableError, MaybeOptionalOptions } from '@orpc/shared';
6
- export { AsyncCleanupFn, AsyncIteratorClass, AsyncIteratorClassNextFn, Registry, ThrowableError, asyncIteratorToStream as eventIteratorToStream, asyncIteratorToUnproxiedDataStream as eventIteratorToUnproxiedDataStream, onError, onFinish, onStart, onSuccess, streamToAsyncIteratorClass as streamToEventIterator } from '@orpc/shared';
6
+ export { AsyncCleanupFn, AsyncIteratorClass, AsyncIteratorClassNextFn, MaybeOptionalOptions, PromiseWithError, Registry, ThrowableError, asyncIteratorToStream as eventIteratorToStream, asyncIteratorToUnproxiedDataStream as eventIteratorToUnproxiedDataStream, onError, onFinish, onStart, onSuccess, streamToAsyncIteratorClass as streamToEventIterator } from '@orpc/shared';
7
7
  import { C as Context, d as Middleware, M as MergedContext, e as MergedInitialContext, a as Procedure, f as AnyMiddleware, g as Lazy, A as AnyProcedure, L as Lazyable, h as ProcedureHandler, O as ORPCErrorConstructorMap, i as OrderedMiddleware, P as ProcedureClientOptions, b as ProcedureClient } from './shared/server.BL22TloH.js';
8
8
  export { j as LazyDefinition, k as MiddlewareDefinition, l as MiddlewareDone, m as MiddlewareDoneOptions, n as MiddlewareNext, o as MiddlewareNextOptions, p as MiddlewareOptions, q as MiddlewareResult, r as ORPCErrorConstructorMapItem, s as ORPCErrorConstructorMapItemOptions, c as ProcedureClientInterceptor, t as ProcedureClientInterceptorOptions, u as ProcedureDefinition, v as ProcedureHandlerOptions, w as createORPCErrorConstructorMap, x as createProcedureClient, y as unlazy } from './shared/server.BL22TloH.js';
9
9
  import { A as AnyRouter, R as Router, C as ContractedRouter, I as InferRouterInitialContext } from './shared/server.Pa0F03f_.js';
10
10
  export { a as InferRouterError, b as InferRouterErrors, c as InferRouterFinalContexts, d as InferRouterInitialContexts, e as InferRouterInputs, f as InferRouterOutputs } from './shared/server.Pa0F03f_.js';
11
- export { ErrorEvent, getEventMeta, unwrapEvent, withEventMeta } from '@standardserver/core';
11
+ export { ErrorEvent, EventMeta, getEventMeta, unwrapEvent, withEventMeta } from '@standardserver/core';
12
12
 
13
13
  interface DecoratedMiddleware<TInContext extends Context, TOutContext extends Context, TInput, TOutput, TErrorMap extends ErrorMap> extends Middleware<TInContext, TOutContext, TInput, TOutput, TErrorMap> {
14
14
  adaptInput<T>(adapt: (input: T) => TInput): DecoratedMiddleware<TInContext, TOutContext, T, TOutput, TErrorMap>;
@@ -1,7 +1,7 @@
1
- import { Value, Promisable } from '@orpc/shared';
1
+ import { Value, Promisable, ThrowableError } from '@orpc/shared';
2
2
  import { StandardLazyRequest, StandardHeaders } from '@standardserver/core';
3
3
  import { C as Context } from '../shared/server.BL22TloH.mjs';
4
- import { e as StandardHandlerPlugin, f as StandardHandlerRoutingInterceptorOptions, a as StandardHandlerOptions } from '../shared/server.BB_Ik9Ph.mjs';
4
+ import { e as StandardHandlerPlugin, f as StandardHandlerRoutingInterceptorOptions, a as StandardHandlerOptions, g as StandardHandlerInterceptorOptions } from '../shared/server.DJIkub_t.mjs';
5
5
  import '@orpc/client';
6
6
  import '@orpc/contract';
7
7
 
@@ -162,5 +162,36 @@ declare class ResponseHeadersHandlerPlugin<T extends ResponseHeadersHandlerPlugi
162
162
  init(options: StandardHandlerOptions<T>): StandardHandlerOptions<T>;
163
163
  }
164
164
 
165
- export { BatchHandlerPlugin, CORSHandlerPlugin, CSRFGuardHandlerPlugin, RequestHeadersHandlerPlugin, ResponseHeadersHandlerPlugin };
166
- export type { BatchHandlerPluginOptions, CORSHandlerPluginOptions, RequestHeadersHandlerPluginContext, ResponseHeadersHandlerPluginContext };
165
+ interface RethrowHandlerPluginOptions<T extends Context> {
166
+ /**
167
+ * Decide which errors should be rethrown.
168
+ *
169
+ * @example
170
+ * ```ts
171
+ * const rethrowPlugin = new RethrowHandlerPlugin({
172
+ * filter: (error) => {
173
+ * // Rethrow all non-ORPCError errors
174
+ * return !(error instanceof ORPCError)
175
+ * }
176
+ * })
177
+ * ```
178
+ */
179
+ filter: (error: ThrowableError, options: StandardHandlerInterceptorOptions<T>) => boolean;
180
+ }
181
+ /**
182
+ * The plugin can bypass oRPC's built-in error handling
183
+ * and rethrow matching errors directly to your framework's error handling mechanism
184
+ * (e.g., NestJS exception filters, Express error middleware).
185
+ *
186
+ * @see {@link https://orpc.dev/docs/plugins/rethrow Rethrow Plugin Documentation}
187
+ */
188
+ declare class RethrowHandlerPlugin<T extends Context> implements StandardHandlerPlugin<T> {
189
+ name: string;
190
+ private readonly filter;
191
+ private readonly CONTEXT_SYMBOL;
192
+ constructor(options: RethrowHandlerPluginOptions<T>);
193
+ init(options: StandardHandlerOptions<T>): StandardHandlerOptions<T>;
194
+ }
195
+
196
+ export { BatchHandlerPlugin, CORSHandlerPlugin, CSRFGuardHandlerPlugin, RequestHeadersHandlerPlugin, ResponseHeadersHandlerPlugin, RethrowHandlerPlugin };
197
+ export type { BatchHandlerPluginOptions, CORSHandlerPluginOptions, RequestHeadersHandlerPluginContext, ResponseHeadersHandlerPluginContext, RethrowHandlerPluginOptions };
@@ -1,7 +1,7 @@
1
- import { Value, Promisable } from '@orpc/shared';
1
+ import { Value, Promisable, ThrowableError } from '@orpc/shared';
2
2
  import { StandardLazyRequest, StandardHeaders } from '@standardserver/core';
3
3
  import { C as Context } from '../shared/server.BL22TloH.js';
4
- import { e as StandardHandlerPlugin, f as StandardHandlerRoutingInterceptorOptions, a as StandardHandlerOptions } from '../shared/server.EOHJ3NJr.js';
4
+ import { e as StandardHandlerPlugin, f as StandardHandlerRoutingInterceptorOptions, a as StandardHandlerOptions, g as StandardHandlerInterceptorOptions } from '../shared/server.DBANIheG.js';
5
5
  import '@orpc/client';
6
6
  import '@orpc/contract';
7
7
 
@@ -162,5 +162,36 @@ declare class ResponseHeadersHandlerPlugin<T extends ResponseHeadersHandlerPlugi
162
162
  init(options: StandardHandlerOptions<T>): StandardHandlerOptions<T>;
163
163
  }
164
164
 
165
- export { BatchHandlerPlugin, CORSHandlerPlugin, CSRFGuardHandlerPlugin, RequestHeadersHandlerPlugin, ResponseHeadersHandlerPlugin };
166
- export type { BatchHandlerPluginOptions, CORSHandlerPluginOptions, RequestHeadersHandlerPluginContext, ResponseHeadersHandlerPluginContext };
165
+ interface RethrowHandlerPluginOptions<T extends Context> {
166
+ /**
167
+ * Decide which errors should be rethrown.
168
+ *
169
+ * @example
170
+ * ```ts
171
+ * const rethrowPlugin = new RethrowHandlerPlugin({
172
+ * filter: (error) => {
173
+ * // Rethrow all non-ORPCError errors
174
+ * return !(error instanceof ORPCError)
175
+ * }
176
+ * })
177
+ * ```
178
+ */
179
+ filter: (error: ThrowableError, options: StandardHandlerInterceptorOptions<T>) => boolean;
180
+ }
181
+ /**
182
+ * The plugin can bypass oRPC's built-in error handling
183
+ * and rethrow matching errors directly to your framework's error handling mechanism
184
+ * (e.g., NestJS exception filters, Express error middleware).
185
+ *
186
+ * @see {@link https://orpc.dev/docs/plugins/rethrow Rethrow Plugin Documentation}
187
+ */
188
+ declare class RethrowHandlerPlugin<T extends Context> implements StandardHandlerPlugin<T> {
189
+ name: string;
190
+ private readonly filter;
191
+ private readonly CONTEXT_SYMBOL;
192
+ constructor(options: RethrowHandlerPluginOptions<T>);
193
+ init(options: StandardHandlerOptions<T>): StandardHandlerOptions<T>;
194
+ }
195
+
196
+ export { BatchHandlerPlugin, CORSHandlerPlugin, CSRFGuardHandlerPlugin, RequestHeadersHandlerPlugin, ResponseHeadersHandlerPlugin, RethrowHandlerPlugin };
197
+ export type { BatchHandlerPluginOptions, CORSHandlerPluginOptions, RequestHeadersHandlerPluginContext, ResponseHeadersHandlerPluginContext, RethrowHandlerPluginOptions };
@@ -302,4 +302,56 @@ class ResponseHeadersHandlerPlugin {
302
302
  }
303
303
  }
304
304
 
305
- export { BatchHandlerPlugin, CORSHandlerPlugin, RequestHeadersHandlerPlugin, ResponseHeadersHandlerPlugin };
305
+ class RethrowHandlerPlugin {
306
+ name = "~rethrow";
307
+ filter;
308
+ CONTEXT_SYMBOL = Symbol("ORPC_RETHROW_HANDLER_PLUGIN_CONTEXT");
309
+ constructor(options) {
310
+ this.filter = options.filter;
311
+ }
312
+ init(options) {
313
+ const routingInterceptor = async (options2) => {
314
+ const pluginContext = {};
315
+ const result = await options2.next({
316
+ ...options2,
317
+ context: {
318
+ ...options2.context,
319
+ [this.CONTEXT_SYMBOL]: pluginContext
320
+ }
321
+ });
322
+ if (pluginContext.error) {
323
+ throw pluginContext.error.value;
324
+ }
325
+ return result;
326
+ };
327
+ const interceptor = async (options2) => {
328
+ const pluginContext = options2.context[this.CONTEXT_SYMBOL];
329
+ if (!pluginContext) {
330
+ throw new TypeError("[RethrowHandlerPlugin] Rethrow handler context has been corrupted or modified by another plugin or interceptor");
331
+ }
332
+ try {
333
+ return await options2.next();
334
+ } catch (error) {
335
+ if (this.filter(error, options2)) {
336
+ pluginContext.error = { value: error };
337
+ }
338
+ throw error;
339
+ }
340
+ };
341
+ return {
342
+ ...options,
343
+ routingInterceptors: [
344
+ ...toArray(options.routingInterceptors),
345
+ routingInterceptor
346
+ // rethrow as early as possible and keep it close to `interceptor` to avoid a corrupted or modified context
347
+ ],
348
+ interceptors: [
349
+ interceptor,
350
+ // catch as many errors as possible
351
+ ...toArray(options.interceptors)
352
+ ]
353
+ };
354
+ }
355
+ }
356
+
357
+ export { BatchHandlerPlugin, CORSHandlerPlugin, RequestHeadersHandlerPlugin, ResponseHeadersHandlerPlugin, RethrowHandlerPlugin };
@@ -4,7 +4,7 @@ import { StandardMethod, StandardLazyRequest, StandardResponse } from '@standard
4
4
  import { A as AnyProcedure, C as Context } from './server.BL22TloH.mjs';
5
5
  import { A as AnyRouter } from './server.BsNNjG5J.mjs';
6
6
  import { AnyProcedureContract } from '@orpc/contract';
7
- import { b as StandardHandlerHandleOptions, c as StandardHandlerCodec, d as StandardHandlerCodecResolvedProcedure } from './server.BB_Ik9Ph.mjs';
7
+ import { b as StandardHandlerHandleOptions, c as StandardHandlerCodec, d as StandardHandlerCodecResolvedProcedure } from './server.DJIkub_t.mjs';
8
8
 
9
9
  interface RPCMatcherOptions {
10
10
  /**
@@ -101,4 +101,4 @@ interface StandardHandlerCodec<T extends Context> {
101
101
  }
102
102
 
103
103
  export { CompositeStandardHandlerPlugin as C, OtelHandlerPlugin as O, StandardHandler as S };
104
- export type { StandardHandlerOptions as a, StandardHandlerHandleOptions as b, StandardHandlerCodec as c, StandardHandlerCodecResolvedProcedure as d, StandardHandlerPlugin as e, StandardHandlerRoutingInterceptorOptions as f, StandardHandlerHandleResult as g, StandardHandlerInterceptor as h, StandardHandlerInterceptorOptions as i, StandardHandlerRoutingInterceptor as j };
104
+ export type { StandardHandlerOptions as a, StandardHandlerHandleOptions as b, StandardHandlerCodec as c, StandardHandlerCodecResolvedProcedure as d, StandardHandlerPlugin as e, StandardHandlerRoutingInterceptorOptions as f, StandardHandlerInterceptorOptions as g, StandardHandlerHandleResult as h, StandardHandlerInterceptor as i, StandardHandlerRoutingInterceptor as j };
@@ -101,4 +101,4 @@ interface StandardHandlerCodec<T extends Context> {
101
101
  }
102
102
 
103
103
  export { CompositeStandardHandlerPlugin as C, OtelHandlerPlugin as O, StandardHandler as S };
104
- export type { StandardHandlerOptions as a, StandardHandlerHandleOptions as b, StandardHandlerCodec as c, StandardHandlerCodecResolvedProcedure as d, StandardHandlerPlugin as e, StandardHandlerRoutingInterceptorOptions as f, StandardHandlerHandleResult as g, StandardHandlerInterceptor as h, StandardHandlerInterceptorOptions as i, StandardHandlerRoutingInterceptor as j };
104
+ export type { StandardHandlerOptions as a, StandardHandlerHandleOptions as b, StandardHandlerCodec as c, StandardHandlerCodecResolvedProcedure as d, StandardHandlerPlugin as e, StandardHandlerRoutingInterceptorOptions as f, StandardHandlerInterceptorOptions as g, StandardHandlerHandleResult as h, StandardHandlerInterceptor as i, StandardHandlerRoutingInterceptor as j };
@@ -4,7 +4,7 @@ import { StandardMethod, StandardLazyRequest, StandardResponse } from '@standard
4
4
  import { A as AnyProcedure, C as Context } from './server.BL22TloH.js';
5
5
  import { A as AnyRouter } from './server.Pa0F03f_.js';
6
6
  import { AnyProcedureContract } from '@orpc/contract';
7
- import { b as StandardHandlerHandleOptions, c as StandardHandlerCodec, d as StandardHandlerCodecResolvedProcedure } from './server.EOHJ3NJr.js';
7
+ import { b as StandardHandlerHandleOptions, c as StandardHandlerCodec, d as StandardHandlerCodecResolvedProcedure } from './server.DBANIheG.js';
8
8
 
9
9
  interface RPCMatcherOptions {
10
10
  /**
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@orpc/server",
3
3
  "type": "module",
4
- "version": "2.0.0-beta.2",
4
+ "version": "2.0.0-beta.4",
5
5
  "license": "MIT",
6
6
  "homepage": "https://orpc.dev",
7
7
  "repository": {
@@ -90,10 +90,10 @@
90
90
  "@standardserver/node": "^0.0.25",
91
91
  "@standardserver/peer": "^0.0.25",
92
92
  "cookie": "^1.1.1",
93
- "@orpc/shared": "2.0.0-beta.2",
94
- "@orpc/contract": "2.0.0-beta.2",
95
- "@orpc/interop": "2.0.0-beta.2",
96
- "@orpc/client": "2.0.0-beta.2"
93
+ "@orpc/client": "2.0.0-beta.4",
94
+ "@orpc/interop": "2.0.0-beta.4",
95
+ "@orpc/contract": "2.0.0-beta.4",
96
+ "@orpc/shared": "2.0.0-beta.4"
97
97
  },
98
98
  "devDependencies": {
99
99
  "crossws": "^0.4.6",