@orpc/server 2.0.0-beta.35 → 2.0.0-beta.36

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 (39) hide show
  1. package/README.md +29 -20
  2. package/dist/adapters/aws-lambda/index.mjs +2 -2
  3. package/dist/adapters/crossws/index.d.mts +2 -2
  4. package/dist/adapters/crossws/index.d.ts +2 -2
  5. package/dist/adapters/crossws/index.mjs +4 -3
  6. package/dist/adapters/fastify/index.mjs +2 -2
  7. package/dist/adapters/fetch/index.d.mts +1 -1
  8. package/dist/adapters/fetch/index.d.ts +1 -1
  9. package/dist/adapters/fetch/index.mjs +2 -2
  10. package/dist/adapters/message-port/index.d.mts +3 -3
  11. package/dist/adapters/message-port/index.d.ts +3 -3
  12. package/dist/adapters/message-port/index.mjs +4 -3
  13. package/dist/adapters/node/index.d.mts +1 -1
  14. package/dist/adapters/node/index.d.ts +1 -1
  15. package/dist/adapters/node/index.mjs +2 -2
  16. package/dist/adapters/standard/index.d.mts +91 -17
  17. package/dist/adapters/standard/index.d.ts +91 -17
  18. package/dist/adapters/standard/index.mjs +2 -2
  19. package/dist/adapters/standard-peer/index.d.mts +4 -9
  20. package/dist/adapters/standard-peer/index.d.ts +4 -9
  21. package/dist/adapters/standard-peer/index.mjs +10 -2
  22. package/dist/adapters/websocket/index.d.mts +3 -3
  23. package/dist/adapters/websocket/index.d.ts +3 -3
  24. package/dist/adapters/websocket/index.mjs +4 -3
  25. package/dist/index.mjs +4 -6
  26. package/dist/plugins/index.d.mts +1 -1
  27. package/dist/plugins/index.d.ts +1 -1
  28. package/dist/shared/{server.R0uHWfBo.d.mts → server.B5K1CViq.d.mts} +20 -9
  29. package/dist/shared/{server.BYnwk7Xz.mjs → server.BynNaBBA.mjs} +7 -9
  30. package/dist/shared/{server.CAiLRqPf.d.mts → server.C7xllBNN.d.mts} +1 -1
  31. package/dist/shared/server.CFqSIFnT.d.mts +14 -0
  32. package/dist/shared/{server.DEeCcNd6.d.ts → server.Cxranw-8.d.ts} +20 -9
  33. package/dist/shared/{server.b2-J4t6T.d.ts → server.D0dr-F8u.d.ts} +1 -1
  34. package/dist/shared/server.RRVK1xTV.d.ts +14 -0
  35. package/dist/shared/{server.sNWd6DAG.mjs → server.vUIzQiOP.mjs} +72 -11
  36. package/package.json +4 -4
  37. package/dist/shared/server.BGMO5dst.d.ts +0 -91
  38. package/dist/shared/server.CX4vUnDk.mjs +0 -11
  39. package/dist/shared/server.DcHlvZFK.d.mts +0 -91
package/README.md CHANGED
@@ -46,29 +46,30 @@ You can read the documentation [here](https://orpc.dev).
46
46
 
47
47
  **Built-in features**
48
48
 
49
- | Package | Purpose | Docs |
50
- | -------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------- |
51
- | [@orpc/publisher](https://www.npmjs.com/package/@orpc/publisher) | Pub/Sub with memory, Redis, and Upstash adapters. | [Publisher](https://orpc.dev/docs/helpers/publisher) |
52
- | [@orpc/ratelimit](https://www.npmjs.com/package/@orpc/ratelimit) | Rate limiting with memory, Redis, and Upstash adapters. | [Rate Limit](https://orpc.dev/docs/helpers/ratelimit) |
53
- | [@orpc/hibernation](https://www.npmjs.com/package/@orpc/hibernation) | Leverage Hibernation APIs like [Cloudflare's Hibernation WebSocket](https://developers.cloudflare.com/durable-objects/best-practices/websockets/#durable-objects-hibernation-websocket-api). | [Hibernation](https://orpc.dev/docs/integrations/hibernation) |
54
- | [@orpc/json-schema](https://www.npmjs.com/package/@orpc/json-schema) | Smart coercion for OpenAPI requests. | [Smart Coercion](https://orpc.dev/docs/plugins/smart-coercion) |
49
+ | Package | Purpose | Docs |
50
+ | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------- |
51
+ | [@orpc/publisher](https://www.npmjs.com/package/@orpc/publisher) | Pub/Sub with memory, Redis, and Upstash adapters. | [Publisher](https://orpc.dev/docs/helpers/publisher) |
52
+ | [@orpc/ratelimit](https://www.npmjs.com/package/@orpc/ratelimit) | Rate limiting with memory, Redis, and Upstash adapters. | [Rate Limit](https://orpc.dev/docs/helpers/ratelimit) |
53
+ | [@orpc/experimental-lock](https://www.npmjs.com/package/@orpc/experimental-lock) | Locking with memory, Redis, and Upstash adapters. | [Lock](https://orpc.dev/docs/helpers/lock) |
54
+ | [@orpc/hibernation](https://www.npmjs.com/package/@orpc/hibernation) | Leverage Hibernation APIs like [Cloudflare's Hibernation WebSocket](https://developers.cloudflare.com/durable-objects/best-practices/websockets/#durable-objects-hibernation-websocket-api). | [Hibernation](https://orpc.dev/docs/integrations/hibernation) |
55
+ | [@orpc/json-schema](https://www.npmjs.com/package/@orpc/json-schema) | Smart coercion for OpenAPI requests. | [Smart Coercion](https://orpc.dev/docs/plugins/smart-coercion) |
55
56
 
56
57
  **Framework & ecosystem integrations**
57
58
 
58
- | Package | Purpose | Docs |
59
- | ------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
60
- | [@orpc/next](https://www.npmjs.com/package/@orpc/next) | Integrate with [Next.js Server Functions](https://nextjs.org/docs/app/getting-started/mutating-data). | [Next.js](https://orpc.dev/docs/integrations/next) |
61
- | [@orpc/ai-sdk](https://www.npmjs.com/package/@orpc/ai-sdk) | Turn contracts and procedures into [AI SDK](https://ai-sdk.dev/) tools. | [AI SDK](https://orpc.dev/docs/integrations/ai-sdk) |
62
- | [@orpc/tanstack-query](https://www.npmjs.com/package/@orpc/tanstack-query) | Integrate with [TanStack Query](https://tanstack.com/query/latest). | [TanStack Query](https://orpc.dev/docs/integrations/tanstack-query) |
63
- | [@orpc/pinia-colada](https://www.npmjs.com/package/@orpc/pinia-colada) | Integrate with [Pinia Colada](https://pinia-colada.esm.dev/). | [Pinia Colada](https://orpc.dev/docs/integrations/pinia-colada) |
64
- | [@orpc/swr](https://www.npmjs.com/package/@orpc/swr) | Integrate with [SWR](https://swr.vercel.app/). | [SWR](https://orpc.dev/docs/integrations/swr) |
65
- | [@orpc/experimental-msw](https://www.npmjs.com/package/@orpc/experimental-msw) | Mock procedures with [Mock Service Worker](https://mswjs.io/). | [MSW](https://orpc.dev/docs/integrations/msw) |
66
- | [@orpc/experimental-effect](https://www.npmjs.com/package/@orpc/experimental-effect) | Integrate with [Effect](https://effect.website/). | [Effect](https://orpc.dev/docs/integrations/effect) |
67
- | [@orpc/nest](https://www.npmjs.com/package/@orpc/nest) | Implement your contract with [NestJS](https://nestjs.com/). | [NestJS](https://orpc.dev/docs/integrations/nest) |
68
- | [@orpc/node](https://www.npmjs.com/package/@orpc/node) | [Node.js](https://nodejs.org/) plugins for static file serving and large uploads. | [Static File](https://orpc.dev/docs/plugins/static-file), [Tmp File Upload](https://orpc.dev/docs/plugins/tmp-file-upload), [Batch Response Compression](https://orpc.dev/docs/plugins/batch-response-compression) |
69
- | [@orpc/bun](https://www.npmjs.com/package/@orpc/bun) | Adapters for [Bun's Redis](https://bun.sh/). | [Publisher](https://orpc.dev/docs/helpers/publisher), [Rate Limit](https://orpc.dev/docs/helpers/ratelimit) |
70
- | [@orpc/cloudflare](https://www.npmjs.com/package/@orpc/cloudflare) | Adapters for [Cloudflare Workers](https://developers.cloudflare.com/workers/). | [Publisher](https://orpc.dev/docs/helpers/publisher), [Rate Limit](https://orpc.dev/docs/helpers/ratelimit), [Traces](https://orpc.dev/docs/integrations/cloudflare-traces) |
71
- | [@orpc/trpc](https://www.npmjs.com/package/@orpc/trpc) | Reuse existing [tRPC](https://trpc.io/) routers within oRPC. | [tRPC](https://orpc.dev/docs/integrations/trpc) |
59
+ | Package | Purpose | Docs |
60
+ | ------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
61
+ | [@orpc/next](https://www.npmjs.com/package/@orpc/next) | Integrate with [Next.js Server Functions](https://nextjs.org/docs/app/getting-started/mutating-data). | [Next.js](https://orpc.dev/docs/integrations/next) |
62
+ | [@orpc/ai-sdk](https://www.npmjs.com/package/@orpc/ai-sdk) | Turn contracts and procedures into [AI SDK](https://ai-sdk.dev/) tools. | [AI SDK](https://orpc.dev/docs/integrations/ai-sdk) |
63
+ | [@orpc/tanstack-query](https://www.npmjs.com/package/@orpc/tanstack-query) | Integrate with [TanStack Query](https://tanstack.com/query/latest). | [TanStack Query](https://orpc.dev/docs/integrations/tanstack-query) |
64
+ | [@orpc/pinia-colada](https://www.npmjs.com/package/@orpc/pinia-colada) | Integrate with [Pinia Colada](https://pinia-colada.esm.dev/). | [Pinia Colada](https://orpc.dev/docs/integrations/pinia-colada) |
65
+ | [@orpc/swr](https://www.npmjs.com/package/@orpc/swr) | Integrate with [SWR](https://swr.vercel.app/). | [SWR](https://orpc.dev/docs/integrations/swr) |
66
+ | [@orpc/experimental-msw](https://www.npmjs.com/package/@orpc/experimental-msw) | Mock procedures with [Mock Service Worker](https://mswjs.io/). | [MSW](https://orpc.dev/docs/integrations/msw) |
67
+ | [@orpc/experimental-effect](https://www.npmjs.com/package/@orpc/experimental-effect) | Integrate with [Effect](https://effect.website/). | [Effect](https://orpc.dev/docs/integrations/effect) |
68
+ | [@orpc/nest](https://www.npmjs.com/package/@orpc/nest) | Implement your contract with [NestJS](https://nestjs.com/). | [NestJS](https://orpc.dev/docs/integrations/nest) |
69
+ | [@orpc/node](https://www.npmjs.com/package/@orpc/node) | [Node.js](https://nodejs.org/) plugins for static file serving and large uploads. | [Static File](https://orpc.dev/docs/plugins/static-file), [Tmp File Upload](https://orpc.dev/docs/plugins/tmp-file-upload), [Batch Response Compression](https://orpc.dev/docs/plugins/batch-response-compression) |
70
+ | [@orpc/bun](https://www.npmjs.com/package/@orpc/bun) | Adapters for [Bun's Redis](https://bun.sh/). | [Publisher](https://orpc.dev/docs/helpers/publisher), [Rate Limit](https://orpc.dev/docs/helpers/ratelimit), [Lock](https://orpc.dev/docs/helpers/lock) |
71
+ | [@orpc/cloudflare](https://www.npmjs.com/package/@orpc/cloudflare) | Adapters for [Cloudflare Workers](https://developers.cloudflare.com/workers/). | [Publisher](https://orpc.dev/docs/helpers/publisher), [Rate Limit](https://orpc.dev/docs/helpers/ratelimit), [Lock](https://orpc.dev/docs/helpers/lock), [Traces](https://orpc.dev/docs/integrations/cloudflare-traces) |
72
+ | [@orpc/trpc](https://www.npmjs.com/package/@orpc/trpc) | Reuse existing [tRPC](https://trpc.io/) routers within oRPC. | [tRPC](https://orpc.dev/docs/integrations/trpc) |
72
73
 
73
74
  **Observability**
74
75
 
@@ -94,6 +95,14 @@ Like what we build over at [middleapi](https://github.com/middleapi)? You can he
94
95
  </tr>
95
96
  </table>
96
97
 
98
+ ### Special Sponsors
99
+
100
+ <table>
101
+ <tr>
102
+ <td align="center"><a href="http://twitter.com/rauchg?ref=middleapi&amp;utm_source=middleapi&amp;utm_medium=sponsor" target="_blank" rel="noopener sponsored" title="Guillermo Rauch"><img src="https://avatars.githubusercontent.com/u/13041?u=1ee8d111657cdd02ff6d253df00978d17ee6d722&amp;v=4" width="279" alt="Guillermo Rauch"/><br />Guillermo Rauch</a></td>
103
+ </tr>
104
+ </table>
105
+
97
106
  ### Organization Sponsors
98
107
 
99
108
  <table>
@@ -1,12 +1,12 @@
1
1
  import { sortPlugins, intercept, resolveMaybeOptionalOptions } from '@orpc/shared';
2
2
  import { toStandardLazyRequest, sendStandardResponse } from '@standard-server/aws-lambda';
3
3
  import { r as resolveFriendlyStandardHandlerHandleOptions } from '../../shared/server.W91HSRkE.mjs';
4
- import { R as RPCHandlerCodec, S as StandardHandler } from '../../shared/server.sNWd6DAG.mjs';
4
+ import { R as RPCHandlerCodec, S as StandardHandler } from '../../shared/server.vUIzQiOP.mjs';
5
5
  import '@orpc/client';
6
6
  import '@standard-server/core';
7
7
  import '../../shared/server.Djb_ebJT.mjs';
8
8
  import '@orpc/contract';
9
- import '../../shared/server.BYnwk7Xz.mjs';
9
+ import '../../shared/server.BynNaBBA.mjs';
10
10
 
11
11
  class CompositeAwsLambdaHandlerPlugin {
12
12
  name = "~composite/aws-lambda";
@@ -3,7 +3,7 @@ import { EncodePeerMessageOptions, DecodePeerMessageOptions } from '@standard-se
3
3
  import { Message, Peer } from 'crossws';
4
4
  import { Context } from '../../index.mjs';
5
5
  import { StandardHandler, StandardHandlerOptions } from '../standard/index.mjs';
6
- import { StandardPeerRequestHandlerOptions } from '../standard-peer/index.mjs';
6
+ import { FriendlyStandardHandlerHandleOptions } from '../standard/index.mjs';
7
7
  import { Router } from '../../index.mjs';
8
8
  import { RPCHandlerCodecOptions } from '../standard/index.mjs';
9
9
  import '@orpc/client';
@@ -36,7 +36,7 @@ declare class experimental_CrosswsHandler<T extends Context> {
36
36
  *
37
37
  * @param ws The crossws peer instance. Use the same instance for all messages.
38
38
  */
39
- message(ws: CrosswsPeerLike, message: CrosswsMessageLike, ...rest: MaybeOptionalOptions<StandardPeerRequestHandlerOptions<T>>): Promise<{
39
+ message(ws: CrosswsPeerLike, message: CrosswsMessageLike, ...rest: MaybeOptionalOptions<FriendlyStandardHandlerHandleOptions<T>>): Promise<{
40
40
  matched: boolean;
41
41
  }>;
42
42
  /**
@@ -3,7 +3,7 @@ import { EncodePeerMessageOptions, DecodePeerMessageOptions } from '@standard-se
3
3
  import { Message, Peer } from 'crossws';
4
4
  import { Context } from '../../index.js';
5
5
  import { StandardHandler, StandardHandlerOptions } from '../standard/index.js';
6
- import { StandardPeerRequestHandlerOptions } from '../standard-peer/index.js';
6
+ import { FriendlyStandardHandlerHandleOptions } from '../standard/index.js';
7
7
  import { Router } from '../../index.js';
8
8
  import { RPCHandlerCodecOptions } from '../standard/index.js';
9
9
  import '@orpc/client';
@@ -36,7 +36,7 @@ declare class experimental_CrosswsHandler<T extends Context> {
36
36
  *
37
37
  * @param ws The crossws peer instance. Use the same instance for all messages.
38
38
  */
39
- message(ws: CrosswsPeerLike, message: CrosswsMessageLike, ...rest: MaybeOptionalOptions<StandardPeerRequestHandlerOptions<T>>): Promise<{
39
+ message(ws: CrosswsPeerLike, message: CrosswsMessageLike, ...rest: MaybeOptionalOptions<FriendlyStandardHandlerHandleOptions<T>>): Promise<{
40
40
  matched: boolean;
41
41
  }>;
42
42
  /**
@@ -1,12 +1,13 @@
1
1
  import { resolveMaybeOptionalOptions } from '@orpc/shared';
2
2
  import { ServerPeer, encodePeerMessage, decodePeerMessage, isClientPeerSendMessage } from '@standard-server/peer';
3
- import { c as createStandardPeerRequestHandler } from '../../shared/server.CX4vUnDk.mjs';
4
- import { R as RPCHandlerCodec, S as StandardHandler } from '../../shared/server.sNWd6DAG.mjs';
3
+ import { createStandardPeerRequestHandler } from '../standard-peer/index.mjs';
4
+ import { R as RPCHandlerCodec, S as StandardHandler } from '../../shared/server.vUIzQiOP.mjs';
5
+ import '../../shared/server.W91HSRkE.mjs';
5
6
  import '@orpc/client';
6
7
  import '@standard-server/core';
7
8
  import '../../shared/server.Djb_ebJT.mjs';
8
9
  import '@orpc/contract';
9
- import '../../shared/server.BYnwk7Xz.mjs';
10
+ import '../../shared/server.BynNaBBA.mjs';
10
11
 
11
12
  class experimental_CrosswsHandler {
12
13
  constructor(handler, options = {}) {
@@ -1,12 +1,12 @@
1
1
  import { sortPlugins, intercept, resolveMaybeOptionalOptions } from '@orpc/shared';
2
2
  import { toStandardLazyRequest, sendStandardResponse } from '@standard-server/fastify';
3
3
  import { r as resolveFriendlyStandardHandlerHandleOptions } from '../../shared/server.W91HSRkE.mjs';
4
- import { R as RPCHandlerCodec, S as StandardHandler } from '../../shared/server.sNWd6DAG.mjs';
4
+ import { R as RPCHandlerCodec, S as StandardHandler } from '../../shared/server.vUIzQiOP.mjs';
5
5
  import '@orpc/client';
6
6
  import '@standard-server/core';
7
7
  import '../../shared/server.Djb_ebJT.mjs';
8
8
  import '@orpc/contract';
9
- import '../../shared/server.BYnwk7Xz.mjs';
9
+ import '../../shared/server.BynNaBBA.mjs';
10
10
 
11
11
  class CompositeFastifyHandlerPlugin {
12
12
  name = "~composite/fastify";
@@ -1,4 +1,4 @@
1
- export { R as BodyLimitPlugin } from '../../shared/server.CAiLRqPf.mjs';
1
+ export { R as BodyLimitPlugin } from '../../shared/server.C7xllBNN.mjs';
2
2
  import { Interceptor, MaybeOptionalOptions } from '@orpc/shared';
3
3
  import { ToFetchResponseOptions } from '@standard-server/fetch';
4
4
  import { Context } from '../../index.mjs';
@@ -1,4 +1,4 @@
1
- export { R as BodyLimitPlugin } from '../../shared/server.b2-J4t6T.js';
1
+ export { R as BodyLimitPlugin } from '../../shared/server.D0dr-F8u.js';
2
2
  import { Interceptor, MaybeOptionalOptions } from '@orpc/shared';
3
3
  import { ToFetchResponseOptions } from '@standard-server/fetch';
4
4
  import { Context } from '../../index.js';
@@ -2,12 +2,12 @@ export { R as BodyLimitPlugin } from '../../shared/server.1ExWFMze.mjs';
2
2
  import { sortPlugins, intercept, resolveMaybeOptionalOptions } from '@orpc/shared';
3
3
  import { toStandardLazyRequest, toFetchResponse } from '@standard-server/fetch';
4
4
  import { r as resolveFriendlyStandardHandlerHandleOptions } from '../../shared/server.W91HSRkE.mjs';
5
- import { R as RPCHandlerCodec, S as StandardHandler } from '../../shared/server.sNWd6DAG.mjs';
5
+ import { R as RPCHandlerCodec, S as StandardHandler } from '../../shared/server.vUIzQiOP.mjs';
6
6
  import '@orpc/client';
7
7
  import '@standard-server/core';
8
8
  import '../../shared/server.Djb_ebJT.mjs';
9
9
  import '@orpc/contract';
10
- import '../../shared/server.BYnwk7Xz.mjs';
10
+ import '../../shared/server.BynNaBBA.mjs';
11
11
 
12
12
  class CompositeFetchHandlerPlugin {
13
13
  name = "~composite/fetch";
@@ -3,7 +3,7 @@ import { Value, Promisable, MaybeOptionalOptions } from '@orpc/shared';
3
3
  import { ServerPeer, EncodePeerMessageOptions, DecodePeerMessageOptions } from '@standard-server/peer';
4
4
  import { Context } from '../../index.mjs';
5
5
  import { StandardHandler, StandardHandlerOptions } from '../standard/index.mjs';
6
- import { StandardPeerRequestHandlerOptions } from '../standard-peer/index.mjs';
6
+ import { FriendlyStandardHandlerHandleOptions } from '../standard/index.mjs';
7
7
  import { Router } from '../../index.mjs';
8
8
  import { RPCHandlerCodecOptions } from '../standard/index.mjs';
9
9
  import '@orpc/client';
@@ -44,13 +44,13 @@ declare class MessagePortHandler<T extends Context> {
44
44
  *
45
45
  * Prefer this over calling `.message()` and `.close()` manually.
46
46
  */
47
- upgrade(port: SupportedMessagePort, ...rest: MaybeOptionalOptions<StandardPeerRequestHandlerOptions<T>>): void;
47
+ upgrade(port: SupportedMessagePort, ...rest: MaybeOptionalOptions<FriendlyStandardHandlerHandleOptions<T>>): void;
48
48
  /**
49
49
  * Handles a single message received from a message port.
50
50
  *
51
51
  * @param port The message port instance. Use the same instance for all messages.
52
52
  */
53
- message(port: SupportedMessagePort, data: unknown, ...rest: MaybeOptionalOptions<StandardPeerRequestHandlerOptions<T>>): Promise<{
53
+ message(port: SupportedMessagePort, data: unknown, ...rest: MaybeOptionalOptions<FriendlyStandardHandlerHandleOptions<T>>): Promise<{
54
54
  matched: boolean;
55
55
  }>;
56
56
  /**
@@ -3,7 +3,7 @@ import { Value, Promisable, MaybeOptionalOptions } from '@orpc/shared';
3
3
  import { ServerPeer, EncodePeerMessageOptions, DecodePeerMessageOptions } from '@standard-server/peer';
4
4
  import { Context } from '../../index.js';
5
5
  import { StandardHandler, StandardHandlerOptions } from '../standard/index.js';
6
- import { StandardPeerRequestHandlerOptions } from '../standard-peer/index.js';
6
+ import { FriendlyStandardHandlerHandleOptions } from '../standard/index.js';
7
7
  import { Router } from '../../index.js';
8
8
  import { RPCHandlerCodecOptions } from '../standard/index.js';
9
9
  import '@orpc/client';
@@ -44,13 +44,13 @@ declare class MessagePortHandler<T extends Context> {
44
44
  *
45
45
  * Prefer this over calling `.message()` and `.close()` manually.
46
46
  */
47
- upgrade(port: SupportedMessagePort, ...rest: MaybeOptionalOptions<StandardPeerRequestHandlerOptions<T>>): void;
47
+ upgrade(port: SupportedMessagePort, ...rest: MaybeOptionalOptions<FriendlyStandardHandlerHandleOptions<T>>): void;
48
48
  /**
49
49
  * Handles a single message received from a message port.
50
50
  *
51
51
  * @param port The message port instance. Use the same instance for all messages.
52
52
  */
53
- message(port: SupportedMessagePort, data: unknown, ...rest: MaybeOptionalOptions<StandardPeerRequestHandlerOptions<T>>): Promise<{
53
+ message(port: SupportedMessagePort, data: unknown, ...rest: MaybeOptionalOptions<FriendlyStandardHandlerHandleOptions<T>>): Promise<{
54
54
  matched: boolean;
55
55
  }>;
56
56
  /**
@@ -1,13 +1,14 @@
1
1
  import { onMessagePortMessage, onMessagePortClose, postMessagePortMessage } from '@orpc/client/message-port';
2
2
  import { value, resolveMaybeOptionalOptions } from '@orpc/shared';
3
3
  import { ServerPeer, encodePeerMessage, decodePeerMessage, isClientPeerSendMessage, isPeerMessage } from '@standard-server/peer';
4
- import { c as createStandardPeerRequestHandler } from '../../shared/server.CX4vUnDk.mjs';
5
- import { R as RPCHandlerCodec, S as StandardHandler } from '../../shared/server.sNWd6DAG.mjs';
4
+ import { createStandardPeerRequestHandler } from '../standard-peer/index.mjs';
5
+ import { R as RPCHandlerCodec, S as StandardHandler } from '../../shared/server.vUIzQiOP.mjs';
6
+ import '../../shared/server.W91HSRkE.mjs';
6
7
  import '@orpc/client';
7
8
  import '@standard-server/core';
8
9
  import '../../shared/server.Djb_ebJT.mjs';
9
10
  import '@orpc/contract';
10
- import '../../shared/server.BYnwk7Xz.mjs';
11
+ import '../../shared/server.BynNaBBA.mjs';
11
12
 
12
13
  class MessagePortHandler {
13
14
  constructor(handler, options = {}) {
@@ -1,4 +1,4 @@
1
- export { R as BodyLimitPlugin } from '../../shared/server.CAiLRqPf.mjs';
1
+ export { R as BodyLimitPlugin } from '../../shared/server.C7xllBNN.mjs';
2
2
  import { Interceptor, MaybeOptionalOptions } from '@orpc/shared';
3
3
  import { SendStandardResponseOptions, NodeHttpRequest, NodeHttpResponse } from '@standard-server/node';
4
4
  import { Context } from '../../index.mjs';
@@ -1,4 +1,4 @@
1
- export { R as BodyLimitPlugin } from '../../shared/server.b2-J4t6T.js';
1
+ export { R as BodyLimitPlugin } from '../../shared/server.D0dr-F8u.js';
2
2
  import { Interceptor, MaybeOptionalOptions } from '@orpc/shared';
3
3
  import { SendStandardResponseOptions, NodeHttpRequest, NodeHttpResponse } from '@standard-server/node';
4
4
  import { Context } from '../../index.js';
@@ -2,13 +2,13 @@ export { R as BodyLimitPlugin } from '../../shared/server.1ExWFMze.mjs';
2
2
  import { sortPlugins, intercept, resolveMaybeOptionalOptions } from '@orpc/shared';
3
3
  import { toStandardLazyRequest, sendStandardResponse } from '@standard-server/node';
4
4
  import { r as resolveFriendlyStandardHandlerHandleOptions } from '../../shared/server.W91HSRkE.mjs';
5
- import { R as RPCHandlerCodec, S as StandardHandler } from '../../shared/server.sNWd6DAG.mjs';
5
+ import { R as RPCHandlerCodec, S as StandardHandler } from '../../shared/server.vUIzQiOP.mjs';
6
6
  import '@orpc/client';
7
7
  import '@standard-server/core';
8
8
  import '@standard-server/fetch';
9
9
  import '../../shared/server.Djb_ebJT.mjs';
10
10
  import '@orpc/contract';
11
- import '../../shared/server.BYnwk7Xz.mjs';
11
+ import '../../shared/server.BynNaBBA.mjs';
12
12
 
13
13
  class CompositeNodeHttpHandlerPlugin {
14
14
  name = "~composite/node-http";
@@ -1,19 +1,93 @@
1
- import { c as StandardHandlerHandleOptions } from '../../shared/server.R0uHWfBo.mjs';
2
- export { C as CompositeStandardHandlerPlugin, b as StandardHandler, d as StandardHandlerCodec, e as StandardHandlerCodecResolvedProcedure, h as StandardHandlerHandleResult, i as StandardHandlerInterceptor, g as StandardHandlerInterceptorOptions, a as StandardHandlerOptions, S as StandardHandlerPlugin, j as StandardHandlerRoutingInterceptor, f as StandardHandlerRoutingInterceptorOptions, T as TracingHandlerPlugin } from '../../shared/server.R0uHWfBo.mjs';
3
- export { a as RPCHandlerCodec, R as RPCHandlerCodecOptions, b as RPCMatcher, c as RPCMatcherOptions, d as RPC_DEFAULT_ALLOW_METHODS } from '../../shared/server.DcHlvZFK.mjs';
4
- import { Context } from '../../index.mjs';
5
- import '@orpc/client';
6
- import '@orpc/shared';
7
- import '@standard-server/core';
8
- import '@orpc/contract';
9
- import '../../shared/server.BpmUhems.mjs';
1
+ import { R as ResolvedStandardHandlerHandleOptions, f as StandardHandlerCodec, g as StandardHandlerCodecResolvedProcedure } from '../../shared/server.B5K1CViq.mjs';
2
+ export { C as CompositeStandardHandlerPlugin, S as StandardHandler, a as StandardHandlerHandleOptions, h as StandardHandlerHandleResult, i as StandardHandlerInterceptor, e as StandardHandlerInterceptorOptions, c as StandardHandlerOptions, b as StandardHandlerPlugin, j as StandardHandlerRoutingInterceptor, d as StandardHandlerRoutingInterceptorOptions, T as TracingHandlerPlugin } from '../../shared/server.B5K1CViq.mjs';
3
+ import { RPCSerializer, AnyORPCError } from '@orpc/client';
4
+ import { Value, Public, Promisable } from '@orpc/shared';
5
+ import { StandardMethod, StandardLazyRequest, StandardResponse } from '@standard-server/core';
6
+ import { AnyProcedure, Context } from '../../index.mjs';
7
+ import { AnyRouter } from '../../index.mjs';
8
+ import { AnyProcedureContract } from '@orpc/contract';
9
+ export { F as FriendlyStandardHandlerHandleOptions, r as resolveFriendlyStandardHandlerHandleOptions } from '../../shared/server.CFqSIFnT.mjs';
10
10
 
11
- type FriendlyStandardHandlerHandleOptions<T extends Context> = Omit<StandardHandlerHandleOptions<T>, 'context'> & (object extends T ? {
12
- context?: T;
13
- } : {
14
- context: T;
15
- });
16
- declare function resolveFriendlyStandardHandlerHandleOptions<T extends Context>(options: FriendlyStandardHandlerHandleOptions<T>): StandardHandlerHandleOptions<T>;
11
+ /**
12
+ * Methods that can invoke procedures by default. Browsers cannot trigger them
13
+ * cross-site without a CORS preflight or an HTML form, unlike `GET`, which a plain
14
+ * `<a>` click or redirect can trigger with `SameSite=Lax` cookies attached. Other
15
+ * methods (`HEAD`, `OPTIONS`, `QUERY`, ...) have safe semantics that should not
16
+ * invoke a procedure that can modify data.
17
+ *
18
+ * @see {@link https://orpc.dev/docs/rpc/handler#supported-http-methods | RPC Handler - Supported HTTP Methods}
19
+ */
20
+ declare const RPC_DEFAULT_ALLOW_METHODS: readonly StandardMethod[];
21
+ interface RPCMatcherOptions {
22
+ /**
23
+ * Filter which procedures are exposed for matching. Return `false` to exclude.
24
+ *
25
+ * @default true
26
+ */
27
+ filter?: Value<boolean, [procedure: AnyProcedureContract | AnyProcedure, path: string[]]>;
28
+ /**
29
+ * Restricts which HTTP methods can invoke procedures, either with a list of allowed
30
+ * methods or decided per request via a function. Requests using a disallowed method
31
+ * are treated as unmatched. `GET` is excluded by default because it is exposed to
32
+ * Cross-Site Request Forgery (CSRF) attacks.
33
+ *
34
+ * @default RPC_DEFAULT_ALLOW_METHODS (['POST', 'PUT', 'PATCH', 'DELETE'])
35
+ * @see {@link https://orpc.dev/docs/rpc/handler#supported-http-methods | RPC Handler - Supported HTTP Methods}
36
+ */
37
+ allowMethods?: readonly StandardMethod[] | ((method: StandardMethod, procedure: AnyProcedure, path: string[]) => boolean);
38
+ }
39
+ declare class RPCMatcher {
40
+ private readonly filter;
41
+ private readonly allowMethodsSet;
42
+ private readonly allowMethodsFn;
43
+ private readonly rootRouter;
44
+ private readonly tree;
45
+ private readonly pendingLazyRouters;
46
+ constructor(router: AnyRouter, options?: RPCMatcherOptions);
47
+ private index;
48
+ match(method: StandardMethod, pathname: `/${string}`, prefix: `/${string}` | undefined): Promise<{
49
+ path: string[];
50
+ procedure: AnyProcedure;
51
+ } | undefined>;
52
+ private resolvePendingLazyRouters;
53
+ private loadPendingLazyRouters;
54
+ private loadPendingLazyRouter;
55
+ private indexPendingLazyRouter;
56
+ private resolveProcedure;
57
+ }
17
58
 
18
- export { StandardHandlerHandleOptions, resolveFriendlyStandardHandlerHandleOptions };
19
- export type { FriendlyStandardHandlerHandleOptions };
59
+ interface RPCHandlerCodecOptions<T extends Context> extends RPCMatcherOptions {
60
+ /**
61
+ * Override the default RPC serializer.
62
+ */
63
+ serializer?: Public<RPCSerializer>;
64
+ /**
65
+ * Resolve HTTP status for encoded successful outputs.
66
+ *
67
+ * Value should be in the `2xx` range and must be less than `400`.
68
+ * Return `undefined` or `null` to fallback to default
69
+ *
70
+ * @default DEFAULT_SUCCESS_STATUS (200)
71
+ */
72
+ outputStatus?: Value<number | undefined | null, [output: unknown, procedure: AnyProcedure, path: string[], options: ResolvedStandardHandlerHandleOptions<T>]>;
73
+ /**
74
+ * Mapping ORPCError Code -> HTTP Status Code
75
+ * The status code should be in the `4xx` or `5xx` range (must be greater than or equal to `400`).
76
+ *
77
+ * @default COMMON_ERROR_STATUS_MAP
78
+ */
79
+ errorStatusMap?: Record<string, number> | undefined;
80
+ }
81
+ declare class RPCHandlerCodec<T extends Context> implements StandardHandlerCodec<T> {
82
+ private readonly matcher;
83
+ private readonly serializer;
84
+ private readonly errorStatusMap;
85
+ private readonly outputStatus;
86
+ constructor(router: AnyRouter, options?: RPCHandlerCodecOptions<T>);
87
+ resolveProcedure(request: StandardLazyRequest, options: ResolvedStandardHandlerHandleOptions<T>): Promise<StandardHandlerCodecResolvedProcedure | undefined>;
88
+ encodeOutput(output: unknown, procedure: AnyProcedure, path: string[], options: ResolvedStandardHandlerHandleOptions<T>): Promisable<StandardResponse>;
89
+ encodeError(error: AnyORPCError, _procedure: AnyProcedure, _path: string[], _options: ResolvedStandardHandlerHandleOptions<T>): Promisable<StandardResponse>;
90
+ }
91
+
92
+ export { RPCHandlerCodec, RPCMatcher, RPC_DEFAULT_ALLOW_METHODS, ResolvedStandardHandlerHandleOptions, StandardHandlerCodec, StandardHandlerCodecResolvedProcedure };
93
+ export type { RPCHandlerCodecOptions, RPCMatcherOptions };
@@ -1,19 +1,93 @@
1
- import { c as StandardHandlerHandleOptions } from '../../shared/server.DEeCcNd6.js';
2
- export { C as CompositeStandardHandlerPlugin, b as StandardHandler, d as StandardHandlerCodec, e as StandardHandlerCodecResolvedProcedure, h as StandardHandlerHandleResult, i as StandardHandlerInterceptor, g as StandardHandlerInterceptorOptions, a as StandardHandlerOptions, S as StandardHandlerPlugin, j as StandardHandlerRoutingInterceptor, f as StandardHandlerRoutingInterceptorOptions, T as TracingHandlerPlugin } from '../../shared/server.DEeCcNd6.js';
3
- export { a as RPCHandlerCodec, R as RPCHandlerCodecOptions, b as RPCMatcher, c as RPCMatcherOptions, d as RPC_DEFAULT_ALLOW_METHODS } from '../../shared/server.BGMO5dst.js';
4
- import { Context } from '../../index.js';
5
- import '@orpc/client';
6
- import '@orpc/shared';
7
- import '@standard-server/core';
8
- import '@orpc/contract';
9
- import '../../shared/server.CRwPbhLO.js';
1
+ import { R as ResolvedStandardHandlerHandleOptions, f as StandardHandlerCodec, g as StandardHandlerCodecResolvedProcedure } from '../../shared/server.Cxranw-8.js';
2
+ export { C as CompositeStandardHandlerPlugin, S as StandardHandler, a as StandardHandlerHandleOptions, h as StandardHandlerHandleResult, i as StandardHandlerInterceptor, e as StandardHandlerInterceptorOptions, c as StandardHandlerOptions, b as StandardHandlerPlugin, j as StandardHandlerRoutingInterceptor, d as StandardHandlerRoutingInterceptorOptions, T as TracingHandlerPlugin } from '../../shared/server.Cxranw-8.js';
3
+ import { RPCSerializer, AnyORPCError } from '@orpc/client';
4
+ import { Value, Public, Promisable } from '@orpc/shared';
5
+ import { StandardMethod, StandardLazyRequest, StandardResponse } from '@standard-server/core';
6
+ import { AnyProcedure, Context } from '../../index.js';
7
+ import { AnyRouter } from '../../index.js';
8
+ import { AnyProcedureContract } from '@orpc/contract';
9
+ export { F as FriendlyStandardHandlerHandleOptions, r as resolveFriendlyStandardHandlerHandleOptions } from '../../shared/server.RRVK1xTV.js';
10
10
 
11
- type FriendlyStandardHandlerHandleOptions<T extends Context> = Omit<StandardHandlerHandleOptions<T>, 'context'> & (object extends T ? {
12
- context?: T;
13
- } : {
14
- context: T;
15
- });
16
- declare function resolveFriendlyStandardHandlerHandleOptions<T extends Context>(options: FriendlyStandardHandlerHandleOptions<T>): StandardHandlerHandleOptions<T>;
11
+ /**
12
+ * Methods that can invoke procedures by default. Browsers cannot trigger them
13
+ * cross-site without a CORS preflight or an HTML form, unlike `GET`, which a plain
14
+ * `<a>` click or redirect can trigger with `SameSite=Lax` cookies attached. Other
15
+ * methods (`HEAD`, `OPTIONS`, `QUERY`, ...) have safe semantics that should not
16
+ * invoke a procedure that can modify data.
17
+ *
18
+ * @see {@link https://orpc.dev/docs/rpc/handler#supported-http-methods | RPC Handler - Supported HTTP Methods}
19
+ */
20
+ declare const RPC_DEFAULT_ALLOW_METHODS: readonly StandardMethod[];
21
+ interface RPCMatcherOptions {
22
+ /**
23
+ * Filter which procedures are exposed for matching. Return `false` to exclude.
24
+ *
25
+ * @default true
26
+ */
27
+ filter?: Value<boolean, [procedure: AnyProcedureContract | AnyProcedure, path: string[]]>;
28
+ /**
29
+ * Restricts which HTTP methods can invoke procedures, either with a list of allowed
30
+ * methods or decided per request via a function. Requests using a disallowed method
31
+ * are treated as unmatched. `GET` is excluded by default because it is exposed to
32
+ * Cross-Site Request Forgery (CSRF) attacks.
33
+ *
34
+ * @default RPC_DEFAULT_ALLOW_METHODS (['POST', 'PUT', 'PATCH', 'DELETE'])
35
+ * @see {@link https://orpc.dev/docs/rpc/handler#supported-http-methods | RPC Handler - Supported HTTP Methods}
36
+ */
37
+ allowMethods?: readonly StandardMethod[] | ((method: StandardMethod, procedure: AnyProcedure, path: string[]) => boolean);
38
+ }
39
+ declare class RPCMatcher {
40
+ private readonly filter;
41
+ private readonly allowMethodsSet;
42
+ private readonly allowMethodsFn;
43
+ private readonly rootRouter;
44
+ private readonly tree;
45
+ private readonly pendingLazyRouters;
46
+ constructor(router: AnyRouter, options?: RPCMatcherOptions);
47
+ private index;
48
+ match(method: StandardMethod, pathname: `/${string}`, prefix: `/${string}` | undefined): Promise<{
49
+ path: string[];
50
+ procedure: AnyProcedure;
51
+ } | undefined>;
52
+ private resolvePendingLazyRouters;
53
+ private loadPendingLazyRouters;
54
+ private loadPendingLazyRouter;
55
+ private indexPendingLazyRouter;
56
+ private resolveProcedure;
57
+ }
17
58
 
18
- export { StandardHandlerHandleOptions, resolveFriendlyStandardHandlerHandleOptions };
19
- export type { FriendlyStandardHandlerHandleOptions };
59
+ interface RPCHandlerCodecOptions<T extends Context> extends RPCMatcherOptions {
60
+ /**
61
+ * Override the default RPC serializer.
62
+ */
63
+ serializer?: Public<RPCSerializer>;
64
+ /**
65
+ * Resolve HTTP status for encoded successful outputs.
66
+ *
67
+ * Value should be in the `2xx` range and must be less than `400`.
68
+ * Return `undefined` or `null` to fallback to default
69
+ *
70
+ * @default DEFAULT_SUCCESS_STATUS (200)
71
+ */
72
+ outputStatus?: Value<number | undefined | null, [output: unknown, procedure: AnyProcedure, path: string[], options: ResolvedStandardHandlerHandleOptions<T>]>;
73
+ /**
74
+ * Mapping ORPCError Code -> HTTP Status Code
75
+ * The status code should be in the `4xx` or `5xx` range (must be greater than or equal to `400`).
76
+ *
77
+ * @default COMMON_ERROR_STATUS_MAP
78
+ */
79
+ errorStatusMap?: Record<string, number> | undefined;
80
+ }
81
+ declare class RPCHandlerCodec<T extends Context> implements StandardHandlerCodec<T> {
82
+ private readonly matcher;
83
+ private readonly serializer;
84
+ private readonly errorStatusMap;
85
+ private readonly outputStatus;
86
+ constructor(router: AnyRouter, options?: RPCHandlerCodecOptions<T>);
87
+ resolveProcedure(request: StandardLazyRequest, options: ResolvedStandardHandlerHandleOptions<T>): Promise<StandardHandlerCodecResolvedProcedure | undefined>;
88
+ encodeOutput(output: unknown, procedure: AnyProcedure, path: string[], options: ResolvedStandardHandlerHandleOptions<T>): Promisable<StandardResponse>;
89
+ encodeError(error: AnyORPCError, _procedure: AnyProcedure, _path: string[], _options: ResolvedStandardHandlerHandleOptions<T>): Promisable<StandardResponse>;
90
+ }
91
+
92
+ export { RPCHandlerCodec, RPCMatcher, RPC_DEFAULT_ALLOW_METHODS, ResolvedStandardHandlerHandleOptions, StandardHandlerCodec, StandardHandlerCodecResolvedProcedure };
93
+ export type { RPCHandlerCodecOptions, RPCMatcherOptions };
@@ -1,8 +1,8 @@
1
- export { C as CompositeStandardHandlerPlugin, R as RPCHandlerCodec, a as RPCMatcher, b as RPC_DEFAULT_ALLOW_METHODS, S as StandardHandler, T as TracingHandlerPlugin } from '../../shared/server.sNWd6DAG.mjs';
1
+ export { C as CompositeStandardHandlerPlugin, R as RPCHandlerCodec, a as RPCMatcher, b as RPC_DEFAULT_ALLOW_METHODS, S as StandardHandler, T as TracingHandlerPlugin } from '../../shared/server.vUIzQiOP.mjs';
2
2
  export { r as resolveFriendlyStandardHandlerHandleOptions } from '../../shared/server.W91HSRkE.mjs';
3
3
  import '@orpc/client';
4
4
  import '@orpc/shared';
5
5
  import '@standard-server/core';
6
6
  import '../../shared/server.Djb_ebJT.mjs';
7
7
  import '@orpc/contract';
8
- import '../../shared/server.BYnwk7Xz.mjs';
8
+ import '../../shared/server.BynNaBBA.mjs';
@@ -1,16 +1,11 @@
1
- import { Value, Promisable } from '@orpc/shared';
2
1
  import { StandardLazyRequest, StandardResponse } from '@standard-server/core';
3
2
  import { Context } from '../../index.mjs';
4
- import { StandardHandlerHandleOptions, StandardHandler } from '../standard/index.mjs';
3
+ import { StandardHandler } from '../standard/index.mjs';
4
+ import { FriendlyStandardHandlerHandleOptions } from '../standard/index.mjs';
5
5
  import '@orpc/client';
6
6
  import '@orpc/contract';
7
+ import '@orpc/shared';
7
8
 
8
- type StandardPeerRequestHandlerOptions<T extends Context> = Omit<StandardHandlerHandleOptions<T>, 'context'> & (Record<never, never> extends T ? {
9
- context?: Value<Promisable<T>, [request: StandardLazyRequest]>;
10
- } : {
11
- context: Value<Promisable<T>, [request: StandardLazyRequest]>;
12
- });
13
- declare function createStandardPeerRequestHandler<T extends Context>(handler: StandardHandler<T>, options: StandardPeerRequestHandlerOptions<T>): (request: StandardLazyRequest) => Promise<StandardResponse>;
9
+ declare function createStandardPeerRequestHandler<T extends Context>(handler: StandardHandler<T>, options: FriendlyStandardHandlerHandleOptions<T>): (request: StandardLazyRequest) => Promise<StandardResponse>;
14
10
 
15
11
  export { createStandardPeerRequestHandler };
16
- export type { StandardPeerRequestHandlerOptions };
@@ -1,16 +1,11 @@
1
- import { Value, Promisable } from '@orpc/shared';
2
1
  import { StandardLazyRequest, StandardResponse } from '@standard-server/core';
3
2
  import { Context } from '../../index.js';
4
- import { StandardHandlerHandleOptions, StandardHandler } from '../standard/index.js';
3
+ import { StandardHandler } from '../standard/index.js';
4
+ import { FriendlyStandardHandlerHandleOptions } from '../standard/index.js';
5
5
  import '@orpc/client';
6
6
  import '@orpc/contract';
7
+ import '@orpc/shared';
7
8
 
8
- type StandardPeerRequestHandlerOptions<T extends Context> = Omit<StandardHandlerHandleOptions<T>, 'context'> & (Record<never, never> extends T ? {
9
- context?: Value<Promisable<T>, [request: StandardLazyRequest]>;
10
- } : {
11
- context: Value<Promisable<T>, [request: StandardLazyRequest]>;
12
- });
13
- declare function createStandardPeerRequestHandler<T extends Context>(handler: StandardHandler<T>, options: StandardPeerRequestHandlerOptions<T>): (request: StandardLazyRequest) => Promise<StandardResponse>;
9
+ declare function createStandardPeerRequestHandler<T extends Context>(handler: StandardHandler<T>, options: FriendlyStandardHandlerHandleOptions<T>): (request: StandardLazyRequest) => Promise<StandardResponse>;
14
10
 
15
11
  export { createStandardPeerRequestHandler };
16
- export type { StandardPeerRequestHandlerOptions };
@@ -1,2 +1,10 @@
1
- export { c as createStandardPeerRequestHandler } from '../../shared/server.CX4vUnDk.mjs';
2
- import '@orpc/shared';
1
+ import { r as resolveFriendlyStandardHandlerHandleOptions } from '../../shared/server.W91HSRkE.mjs';
2
+
3
+ function createStandardPeerRequestHandler(handler, options) {
4
+ return async (request) => {
5
+ const { response } = await handler.handle(request, resolveFriendlyStandardHandlerHandleOptions(options));
6
+ return response ?? { status: 404, headers: {}, body: "No procedure matched" };
7
+ };
8
+ }
9
+
10
+ export { createStandardPeerRequestHandler };