@orpc/server 2.0.0-beta.45 → 2.0.0-beta.47

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 +53 -19
  2. package/dist/adapters/aws-lambda/index.d.mts +1 -0
  3. package/dist/adapters/aws-lambda/index.d.ts +1 -0
  4. package/dist/adapters/aws-lambda/index.mjs +3 -3
  5. package/dist/adapters/crossws/index.mjs +3 -3
  6. package/dist/adapters/fastify/index.mjs +3 -3
  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 +3 -3
  10. package/dist/adapters/message-port/index.mjs +3 -3
  11. package/dist/adapters/node/index.d.mts +1 -1
  12. package/dist/adapters/node/index.d.ts +1 -1
  13. package/dist/adapters/node/index.mjs +3 -3
  14. package/dist/adapters/standard/index.d.mts +3 -3
  15. package/dist/adapters/standard/index.d.ts +3 -3
  16. package/dist/adapters/standard/index.mjs +3 -3
  17. package/dist/adapters/websocket/index.mjs +3 -3
  18. package/dist/extensions/callable.mjs +2 -2
  19. package/dist/index.d.mts +10 -32
  20. package/dist/index.d.ts +10 -32
  21. package/dist/index.mjs +12 -10
  22. package/dist/plugins/index.d.mts +1 -1
  23. package/dist/plugins/index.d.ts +1 -1
  24. package/dist/plugins/index.mjs +21 -20
  25. package/dist/shared/{server.BYNQ06wN.d.ts → server.9B1jEm5a.d.mts} +2 -12
  26. package/dist/shared/{server.FEqy7Hrj.mjs → server.BB464y-6.mjs} +6 -4
  27. package/dist/shared/{server.TjEHK8V3.d.mts → server.BC5BIu02.d.mts} +1 -1
  28. package/dist/shared/{server.CO_upro1.d.ts → server.BSYGskId.d.ts} +2 -2
  29. package/dist/shared/{server.DgcwQ-Wr.d.mts → server.BvG3boBj.d.mts} +2 -2
  30. package/dist/shared/{server.B4hFgqPr.d.mts → server.CTV_mC2P.d.mts} +2 -2
  31. package/dist/shared/{server.BcxD3fmU.mjs → server.CYbIpHbH.mjs} +4 -4
  32. package/dist/shared/{server.CI0qiBzm.d.ts → server.CgBF3Vj1.d.ts} +2 -2
  33. package/dist/shared/{server.Kbq-C85k.mjs → server.Chq5FpXf.mjs} +3 -3
  34. package/dist/shared/{server.BWhT-63L.d.mts → server.DFPxP2v3.d.mts} +6 -3
  35. package/dist/shared/{server.BWhT-63L.d.ts → server.DFPxP2v3.d.ts} +6 -3
  36. package/dist/shared/{server.TVSii8T9.d.mts → server.DOg7ke6y.d.ts} +2 -12
  37. package/dist/shared/{server.DcDZdSrg.d.ts → server.Dz7j9BEh.d.ts} +1 -1
  38. package/dist/shared/{server.AVQWL-DI.mjs → server.sBQSgqK3.mjs} +1 -1
  39. package/package.json +10 -10
package/README.md CHANGED
@@ -21,9 +21,40 @@
21
21
  </a>
22
22
  </div>
23
23
 
24
+ **oRPC** is a TypeScript framework for building end-to-end typesafe APIs. Write your API once as plain TypeScript functions, and oRPC gives you a fully typed client, a REST API with an OpenAPI document, and MCP tools for AI agents, with no code generation. It runs on Node.js, Bun, Deno, Cloudflare Workers, and more.
25
+
26
+ Define procedures on the server and serve them with an [RPC handler](https://orpc.dev/docs/rpc/handler):
27
+
28
+ ```ts
29
+ import { os } from '@orpc/server'
30
+ import * as z from 'zod'
31
+
32
+ export const router = {
33
+ planet: {
34
+ find: os
35
+ .input(z.object({ id: z.number() }))
36
+ .handler(({ input }) => ({ id: input.id, name: 'Earth' })),
37
+ },
38
+ }
39
+ ```
40
+
41
+ Then call them from a client that knows every input and output, without generating anything:
42
+
43
+ ```ts
44
+ import type { RouterClient } from '@orpc/server'
45
+ import type { router } from './router'
46
+ import { createORPCClient } from '@orpc/client'
47
+ import { RPCLink } from '@orpc/client/fetch'
48
+
49
+ const link = new RPCLink({ origin: 'http://localhost:3000', url: '/rpc' })
50
+ const client: RouterClient<typeof router> = createORPCClient(link)
51
+
52
+ const planet = await client.planet.find({ id: 1 }) // { id: number, name: string }
53
+ ```
54
+
24
55
  ## Documentation
25
56
 
26
- You can read the documentation [here](https://orpc.dev).
57
+ Read the full documentation at [orpc.dev](https://orpc.dev), starting with the [Getting Started guide](https://orpc.dev/docs/getting-started).
27
58
 
28
59
  ## Packages
29
60
 
@@ -56,21 +87,21 @@ You can read the documentation [here](https://orpc.dev).
56
87
 
57
88
  **Framework & ecosystem integrations**
58
89
 
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/mcp](https://www.npmjs.com/package/@orpc/mcp) | Expose procedures as [MCP](https://modelcontextprotocol.io/) tools. | [MCP](https://orpc.dev/docs/integrations/mcp) |
64
- | [@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) |
65
- | [@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) |
66
- | [@orpc/swr](https://www.npmjs.com/package/@orpc/swr) | Integrate with [SWR](https://swr.vercel.app/). | [SWR](https://orpc.dev/docs/integrations/swr) |
67
- | [@orpc/msw](https://www.npmjs.com/package/@orpc/msw) | Mock procedures with [Mock Service Worker](https://mswjs.io/). | [MSW](https://orpc.dev/docs/integrations/msw) |
68
- | [@orpc/experimental-effect](https://www.npmjs.com/package/@orpc/experimental-effect) | Integrate with [Effect](https://effect.website/). | [Effect](https://orpc.dev/docs/integrations/effect) |
69
- | [@orpc/nest](https://www.npmjs.com/package/@orpc/nest) | Implement your contract with [NestJS](https://nestjs.com/). | [NestJS](https://orpc.dev/docs/integrations/nest) |
70
- | [@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) |
71
- | [@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) |
72
- | [@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) |
73
- | [@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) |
90
+ | Package | Purpose | Docs |
91
+ | -------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
92
+ | [@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) |
93
+ | [@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) |
94
+ | [@orpc/mcp](https://www.npmjs.com/package/@orpc/mcp) | Expose procedures as [MCP](https://modelcontextprotocol.io/) tools. | [MCP](https://orpc.dev/docs/integrations/mcp) |
95
+ | [@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) |
96
+ | [@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) |
97
+ | [@orpc/swr](https://www.npmjs.com/package/@orpc/swr) | Integrate with [SWR](https://swr.vercel.app/). | [SWR](https://orpc.dev/docs/integrations/swr) |
98
+ | [@orpc/msw](https://www.npmjs.com/package/@orpc/msw) | Mock procedures with [Mock Service Worker](https://mswjs.io/). | [MSW](https://orpc.dev/docs/integrations/msw) |
99
+ | [@orpc/effect](https://www.npmjs.com/package/@orpc/effect) | Integrate with [Effect](https://effect.website/). | [Effect](https://orpc.dev/docs/integrations/effect) |
100
+ | [@orpc/nest](https://www.npmjs.com/package/@orpc/nest) | Implement your contract with [NestJS](https://nestjs.com/). | [NestJS](https://orpc.dev/docs/integrations/nest) |
101
+ | [@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) |
102
+ | [@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) |
103
+ | [@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) |
104
+ | [@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) |
74
105
 
75
106
  **Observability**
76
107
 
@@ -125,10 +156,11 @@ Like what we build over at [middleapi](https://github.com/middleapi)? You can he
125
156
  <td align="center"><a href="https://github.com/christ12938?ref=middleapi&amp;utm_source=middleapi&amp;utm_medium=sponsor" target="_blank" rel="noopener sponsored" title="christ12938"><img src="https://avatars.githubusercontent.com/u/25758598?v=4" width="167" alt="christ12938"/><br />christ12938</a></td>
126
157
  <td align="center"><a href="https://github.com/Ryanjso?ref=middleapi&amp;utm_source=middleapi&amp;utm_medium=sponsor" target="_blank" rel="noopener sponsored" title="Ryan Soderberg"><img src="https://avatars.githubusercontent.com/u/39172778?u=5ed913c31d57e7221b75784abcad48c7ebddde27&amp;v=4" width="167" alt="Ryan Soderberg"/><br />Ryan Soderberg</a></td>
127
158
  <td align="center"><a href="https://github.com/itigoore01?ref=middleapi&amp;utm_source=middleapi&amp;utm_medium=sponsor" target="_blank" rel="noopener sponsored" title="shota"><img src="https://avatars.githubusercontent.com/u/11831107?u=c976a6dc7e055eb026304c46c99100ed22b0c8e0&amp;v=4" width="167" alt="shota"/><br />shota</a></td>
159
+ <td align="center"><a href="https://github.com/Nic13Gamer?ref=middleapi&amp;utm_source=middleapi&amp;utm_medium=sponsor" target="_blank" rel="noopener sponsored" title="Nicholas"><img src="https://avatars.githubusercontent.com/u/54724556?u=56a7ab430ce7a80d648ab6eba051d454a818ed0b&amp;v=4" width="167" alt="Nicholas"/><br />Nicholas</a></td>
128
160
  <td align="center"><a href="https://github.com/ellis-driscoll?ref=middleapi&amp;utm_source=middleapi&amp;utm_medium=sponsor" target="_blank" rel="noopener sponsored" title="Ellis Driscoll"><img src="https://avatars.githubusercontent.com/u/70685966?u=c5f95bc33b5991d9744abe00052542e4a2ed3cb9&amp;v=4" width="167" alt="Ellis Driscoll"/><br />Ellis Driscoll</a></td>
129
- <td align="center"><a href="https://github.com/hoangbn?ref=middleapi&amp;utm_source=middleapi&amp;utm_medium=sponsor" target="_blank" rel="noopener sponsored" title="Hoang Nguyen"><img src="https://avatars.githubusercontent.com/u/38968280?u=c90084c6de65c56facabab7ba13a72a49ddbc3e4&amp;v=4" width="167" alt="Hoang Nguyen"/><br />Hoang Nguyen</a></td>
130
161
  </tr>
131
162
  <tr>
163
+ <td align="center"><a href="https://github.com/hoangbn?ref=middleapi&amp;utm_source=middleapi&amp;utm_medium=sponsor" target="_blank" rel="noopener sponsored" title="Hoang Nguyen"><img src="https://avatars.githubusercontent.com/u/38968280?u=c90084c6de65c56facabab7ba13a72a49ddbc3e4&amp;v=4" width="167" alt="Hoang Nguyen"/><br />Hoang Nguyen</a></td>
132
164
  <td align="center"><a href="https://opencollective.com/guest-ac41de3b?ref=middleapi&amp;utm_source=middleapi&amp;utm_medium=sponsor" target="_blank" rel="noopener sponsored" title="Orestis Ioannou"><img src="https://images.opencollective.com/guest-ac41de3b/avatar/460.png" width="167" alt="Orestis Ioannou"/><br />Orestis Ioannou</a></td>
133
165
  <td align="center"><a href="https://automatio.ai/?ref=middleapi&amp;utm_source=middleapi&amp;utm_medium=sponsor" target="_blank" rel="noopener sponsored" title="Stefan Smiljkovic"><img src="https://avatars.githubusercontent.com/u/1984909?u=b7bf5bc40ed49df3c22f69d2da7b8d78709c49ed&amp;v=4" width="167" alt="Stefan Smiljkovic"/><br />Stefan Smiljkovic</a></td>
134
166
  </tr>
@@ -167,7 +199,7 @@ Like what we build over at [middleapi](https://github.com/middleapi)? You can he
167
199
  </tr>
168
200
  </table>
169
201
 
170
- With thanks to [40 past sponsors](https://orpc.dev/sponsors#past-sponsors) who helped get oRPC here.
202
+ With thanks to [39 past sponsors](https://orpc.dev/sponsors#past-sponsors) who helped get oRPC here.
171
203
 
172
204
  ## Open Source Programs
173
205
 
@@ -175,7 +207,9 @@ With thanks to [40 past sponsors](https://orpc.dev/sponsors#past-sponsors) who h
175
207
 
176
208
  <table>
177
209
  <tr>
178
- <td align="center"><a href="https://claude.com/contact-sales/claude-for-oss" target="_blank" rel="noopener" title="Claude for Open Source"><img src="https://cdn.simpleicons.org/claude" width="64" alt="Claude"/><br />Claude for Open Source</a></td>
210
+ <td align="center"><a href="https://claude.com/contact-sales/claude-for-oss" target="_blank" rel="noopener" title="Claude for Open Source"><img src="https://cdn.simpleicons.org/claude" width="64" alt="Claude"/><br />Claude</a></td>
211
+ <td align="center"><a href="https://pullfrog.com/for-oss" target="_blank" rel="noopener" title="Pullfrog for OSS"><img src="https://avatars.githubusercontent.com/in/1768019?s=128&amp;v=4" width="64" alt="Pullfrog"/><br />Pullfrog</a></td>
212
+ <td align="center"><a href="https://macroscope.com/open-source" target="_blank" rel="noopener" title="Macroscope for Open Source"><img src="https://avatars.githubusercontent.com/in/900172?s=128&amp;v=4" width="64" alt="Macroscope"/><br />Macroscope</a></td>
179
213
  </tr>
180
214
  </table>
181
215
 
@@ -1,5 +1,6 @@
1
1
  import { MaybeOptionalOptions } from '@orpc/shared';
2
2
  import { SendStandardResponseOptions, AnyAPIGatewayProxyEvent, HttpResponseStream } from '@standard-server/aws-lambda';
3
+ export { APIGatewayProxyEvent, APIGatewayProxyEventV2, AnyAPIGatewayProxyEvent, AwsLambdaGlobal, HttpResponseStream } from '@standard-server/aws-lambda';
3
4
  import { Context } from '../../index.mjs';
4
5
  import { StandardHandler, StandardHandlerOptions } from '../standard/index.mjs';
5
6
  import { FriendlyStandardHandlerHandleOptions } from '../standard/index.mjs';
@@ -1,5 +1,6 @@
1
1
  import { MaybeOptionalOptions } from '@orpc/shared';
2
2
  import { SendStandardResponseOptions, AnyAPIGatewayProxyEvent, HttpResponseStream } from '@standard-server/aws-lambda';
3
+ export { APIGatewayProxyEvent, APIGatewayProxyEventV2, AnyAPIGatewayProxyEvent, AwsLambdaGlobal, HttpResponseStream } from '@standard-server/aws-lambda';
3
4
  import { Context } from '../../index.js';
4
5
  import { StandardHandler, StandardHandlerOptions } from '../standard/index.js';
5
6
  import { FriendlyStandardHandlerHandleOptions } from '../standard/index.js';
@@ -1,12 +1,12 @@
1
1
  import { 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.Kbq-C85k.mjs';
4
+ import { R as RPCHandlerCodec, S as StandardHandler } from '../../shared/server.Chq5FpXf.mjs';
5
5
  import '@orpc/client';
6
6
  import '@standard-server/core';
7
- import '../../shared/server.FEqy7Hrj.mjs';
7
+ import '../../shared/server.BB464y-6.mjs';
8
8
  import '@orpc/contract';
9
- import '../../shared/server.BcxD3fmU.mjs';
9
+ import '../../shared/server.CYbIpHbH.mjs';
10
10
 
11
11
  class AwsLambdaHandler {
12
12
  constructor(standardHandler, options = {}) {
@@ -1,13 +1,13 @@
1
1
  import { resolveMaybeOptionalOptions } from '@orpc/shared';
2
2
  import { ServerPeer, encodePeerMessage, decodePeerMessage, isClientPeerSendMessage } from '@standard-server/peer';
3
3
  import { createStandardPeerRequestHandler } from '../standard-peer/index.mjs';
4
- import { R as RPCHandlerCodec, S as StandardHandler } from '../../shared/server.Kbq-C85k.mjs';
4
+ import { R as RPCHandlerCodec, S as StandardHandler } from '../../shared/server.Chq5FpXf.mjs';
5
5
  import '../../shared/server.W91HSRkE.mjs';
6
6
  import '@orpc/client';
7
7
  import '@standard-server/core';
8
- import '../../shared/server.FEqy7Hrj.mjs';
8
+ import '../../shared/server.BB464y-6.mjs';
9
9
  import '@orpc/contract';
10
- import '../../shared/server.BcxD3fmU.mjs';
10
+ import '../../shared/server.CYbIpHbH.mjs';
11
11
 
12
12
  class experimental_CrosswsHandler {
13
13
  constructor(handler, options = {}) {
@@ -1,12 +1,12 @@
1
1
  import { 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.Kbq-C85k.mjs';
4
+ import { R as RPCHandlerCodec, S as StandardHandler } from '../../shared/server.Chq5FpXf.mjs';
5
5
  import '@orpc/client';
6
6
  import '@standard-server/core';
7
- import '../../shared/server.FEqy7Hrj.mjs';
7
+ import '../../shared/server.BB464y-6.mjs';
8
8
  import '@orpc/contract';
9
- import '../../shared/server.BcxD3fmU.mjs';
9
+ import '../../shared/server.CYbIpHbH.mjs';
10
10
 
11
11
  class FastifyHandler {
12
12
  constructor(standardHandler, options = {}) {
@@ -1,4 +1,4 @@
1
- export { R as BodyLimitPlugin } from '../../shared/server.B4hFgqPr.mjs';
1
+ export { R as BodyLimitPlugin } from '../../shared/server.CTV_mC2P.mjs';
2
2
  import { 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.CI0qiBzm.js';
1
+ export { R as BodyLimitPlugin } from '../../shared/server.CgBF3Vj1.js';
2
2
  import { 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 { 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.Kbq-C85k.mjs';
5
+ import { R as RPCHandlerCodec, S as StandardHandler } from '../../shared/server.Chq5FpXf.mjs';
6
6
  import '@orpc/client';
7
7
  import '@standard-server/core';
8
- import '../../shared/server.FEqy7Hrj.mjs';
8
+ import '../../shared/server.BB464y-6.mjs';
9
9
  import '@orpc/contract';
10
- import '../../shared/server.BcxD3fmU.mjs';
10
+ import '../../shared/server.CYbIpHbH.mjs';
11
11
 
12
12
  class FetchHandler {
13
13
  constructor(standardHandler, options = {}) {
@@ -2,13 +2,13 @@ import { onMessagePortMessage, onMessagePortClose, postMessagePortMessage } from
2
2
  import { value, resolveMaybeOptionalOptions } from '@orpc/shared';
3
3
  import { ServerPeer, encodePeerMessage, decodePeerMessage, isClientPeerSendMessage, isPeerMessage } from '@standard-server/peer';
4
4
  import { createStandardPeerRequestHandler } from '../standard-peer/index.mjs';
5
- import { R as RPCHandlerCodec, S as StandardHandler } from '../../shared/server.Kbq-C85k.mjs';
5
+ import { R as RPCHandlerCodec, S as StandardHandler } from '../../shared/server.Chq5FpXf.mjs';
6
6
  import '../../shared/server.W91HSRkE.mjs';
7
7
  import '@orpc/client';
8
8
  import '@standard-server/core';
9
- import '../../shared/server.FEqy7Hrj.mjs';
9
+ import '../../shared/server.BB464y-6.mjs';
10
10
  import '@orpc/contract';
11
- import '../../shared/server.BcxD3fmU.mjs';
11
+ import '../../shared/server.CYbIpHbH.mjs';
12
12
 
13
13
  class MessagePortHandler {
14
14
  constructor(handler, options = {}) {
@@ -1,4 +1,4 @@
1
- export { R as BodyLimitPlugin } from '../../shared/server.B4hFgqPr.mjs';
1
+ export { R as BodyLimitPlugin } from '../../shared/server.CTV_mC2P.mjs';
2
2
  import { 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.CI0qiBzm.js';
1
+ export { R as BodyLimitPlugin } from '../../shared/server.CgBF3Vj1.js';
2
2
  import { 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 { 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.Kbq-C85k.mjs';
5
+ import { R as RPCHandlerCodec, S as StandardHandler } from '../../shared/server.Chq5FpXf.mjs';
6
6
  import '@orpc/client';
7
7
  import '@standard-server/core';
8
8
  import '@standard-server/fetch';
9
- import '../../shared/server.FEqy7Hrj.mjs';
9
+ import '../../shared/server.BB464y-6.mjs';
10
10
  import '@orpc/contract';
11
- import '../../shared/server.BcxD3fmU.mjs';
11
+ import '../../shared/server.CYbIpHbH.mjs';
12
12
 
13
13
  class NodeHttpHandler {
14
14
  constructor(standardHandler, options = {}) {
@@ -1,12 +1,12 @@
1
- import { R as ResolvedStandardHandlerHandleOptions, f as StandardHandlerCodec, g as StandardHandlerCodecResolvedProcedure } from '../../shared/server.TVSii8T9.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.TVSii8T9.mjs';
1
+ import { R as ResolvedStandardHandlerHandleOptions, f as StandardHandlerCodec, g as StandardHandlerCodecResolvedProcedure } from '../../shared/server.9B1jEm5a.mjs';
2
+ export { 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 } from '../../shared/server.9B1jEm5a.mjs';
3
3
  import { RPCSerializer, AnyORPCError } from '@orpc/client';
4
4
  import { Value, Public, Promisable } from '@orpc/shared';
5
5
  import { StandardMethod, StandardLazyRequest, StandardResponse } from '@standard-server/core';
6
6
  import { AnyProcedure, Context } from '../../index.mjs';
7
7
  import { AnyRouter } from '../../index.mjs';
8
8
  import { AnyProcedureContract } from '@orpc/contract';
9
- export { F as FriendlyStandardHandlerHandleOptions, r as resolveFriendlyStandardHandlerHandleOptions } from '../../shared/server.DgcwQ-Wr.mjs';
9
+ export { F as FriendlyStandardHandlerHandleOptions, r as resolveFriendlyStandardHandlerHandleOptions } from '../../shared/server.BvG3boBj.mjs';
10
10
 
11
11
  /**
12
12
  * Methods that can invoke procedures by default. Browsers cannot trigger them
@@ -1,12 +1,12 @@
1
- import { R as ResolvedStandardHandlerHandleOptions, f as StandardHandlerCodec, g as StandardHandlerCodecResolvedProcedure } from '../../shared/server.BYNQ06wN.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.BYNQ06wN.js';
1
+ import { R as ResolvedStandardHandlerHandleOptions, f as StandardHandlerCodec, g as StandardHandlerCodecResolvedProcedure } from '../../shared/server.DOg7ke6y.js';
2
+ export { 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 } from '../../shared/server.DOg7ke6y.js';
3
3
  import { RPCSerializer, AnyORPCError } from '@orpc/client';
4
4
  import { Value, Public, Promisable } from '@orpc/shared';
5
5
  import { StandardMethod, StandardLazyRequest, StandardResponse } from '@standard-server/core';
6
6
  import { AnyProcedure, Context } from '../../index.js';
7
7
  import { AnyRouter } from '../../index.js';
8
8
  import { AnyProcedureContract } from '@orpc/contract';
9
- export { F as FriendlyStandardHandlerHandleOptions, r as resolveFriendlyStandardHandlerHandleOptions } from '../../shared/server.CO_upro1.js';
9
+ export { F as FriendlyStandardHandlerHandleOptions, r as resolveFriendlyStandardHandlerHandleOptions } from '../../shared/server.BSYGskId.js';
10
10
 
11
11
  /**
12
12
  * Methods that can invoke procedures by default. Browsers cannot trigger them
@@ -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.Kbq-C85k.mjs';
1
+ export { R as RPCHandlerCodec, a as RPCMatcher, b as RPC_DEFAULT_ALLOW_METHODS, S as StandardHandler } from '../../shared/server.Chq5FpXf.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
- import '../../shared/server.FEqy7Hrj.mjs';
6
+ import '../../shared/server.BB464y-6.mjs';
7
7
  import '@orpc/contract';
8
- import '../../shared/server.BcxD3fmU.mjs';
8
+ import '../../shared/server.CYbIpHbH.mjs';
@@ -1,13 +1,13 @@
1
1
  import { toStringOrBytes, resolveMaybeOptionalOptions, sequential, loadBytes } from '@orpc/shared';
2
2
  import { ServerPeer, encodePeerMessage, decodePeerMessage, isClientPeerSendMessage } from '@standard-server/peer';
3
3
  import { createStandardPeerRequestHandler } from '../standard-peer/index.mjs';
4
- import { R as RPCHandlerCodec, S as StandardHandler } from '../../shared/server.Kbq-C85k.mjs';
4
+ import { R as RPCHandlerCodec, S as StandardHandler } from '../../shared/server.Chq5FpXf.mjs';
5
5
  import '../../shared/server.W91HSRkE.mjs';
6
6
  import '@orpc/client';
7
7
  import '@standard-server/core';
8
- import '../../shared/server.FEqy7Hrj.mjs';
8
+ import '../../shared/server.BB464y-6.mjs';
9
9
  import '@orpc/contract';
10
- import '../../shared/server.BcxD3fmU.mjs';
10
+ import '../../shared/server.CYbIpHbH.mjs';
11
11
 
12
12
  class WebSocketHandler {
13
13
  constructor(handler, options = {}) {
@@ -1,5 +1,5 @@
1
- import { c as createProcedureClient } from '../shared/server.FEqy7Hrj.mjs';
2
- import { D as DecoratedProcedure } from '../shared/server.AVQWL-DI.mjs';
1
+ import { c as createProcedureClient } from '../shared/server.BB464y-6.mjs';
2
+ import { D as DecoratedProcedure } from '../shared/server.sBQSgqK3.mjs';
3
3
  import '@orpc/client';
4
4
  import '@orpc/contract';
5
5
  import '@orpc/shared';
package/dist/index.d.mts CHANGED
@@ -1,13 +1,13 @@
1
- import { ErrorMap, MergedErrorMap, AnySchema, MetaPlugin, InferSchemaOutput, InferSchemaInput, AugmentContractRouterOptions, AnyProcedureContract, RouterContract, InitialInputSchema, InitialOutputSchema, MergedSchema, ORPCErrorConstructorMap, Schema, ProcedureContractDefinition, ProcedureContract, InferRouterContractErrorMap, ORPCErrorFromErrorMap } from '@orpc/contract';
2
- export { AnyMetaPlugin, AnySchema, ErrorMap, ErrorMapItem, InferSchemaInput, InferSchemaOutput, InitialInputSchema, InitialOutputSchema, MergedErrorMap, Meta, MetaPlugin, MetaPluginDefinition, ORPCErrorConstructorMap, ORPCErrorConstructorMapItem, ORPCErrorConstructorMapItemOptions, ORPCErrorFactory, ORPCErrorFactoryOptions, ORPCErrorFromErrorMap, ProcedureContract, ProcedureContractDefinition, RouterContract, Schema, ValidationError, asyncIteratorObject, defineMeta, error, eventIterator, reconcileORPCError, type } from '@orpc/contract';
1
+ import { ErrorMap, MergedErrorMap, AnySchema, MetaPlugin, InferSchemaOutput, InferSchemaInput, AnyProcedureContract, RouterContract, InitialInputSchema, InitialOutputSchema, MergedSchema, ORPCErrorConstructorMap, Schema, ProcedureContractDefinition, ProcedureContract, InferRouterContractErrorMap, ORPCErrorFromErrorMap } from '@orpc/contract';
2
+ export { AnyMetaPlugin, AnySchema, ErrorMap, ErrorMapItem, InferSchemaInput, InferSchemaOutput, InitialInputSchema, InitialOutputSchema, MergedErrorMap, MergedSchema, Meta, MetaPlugin, MetaPluginDefinition, ORPCErrorConstructorMap, ORPCErrorConstructorMapItem, ORPCErrorConstructorMapItemOptions, ORPCErrorFactory, ORPCErrorFactoryOptions, ORPCErrorFromErrorMap, ProcedureContract, ProcedureContractDefinition, RouterContract, Schema, ValidationError, asyncIteratorObject, defineMeta, error, eventIterator, type } from '@orpc/contract';
3
3
  import { IntersectPick, Promisable, Public, PromiseWithError, ThrowableError, MaybeOptionalOptions } from '@orpc/shared';
4
- export { AsyncCleanupFn, AsyncIteratorClass, AsyncIteratorClassNextFn, MaybeOptionalOptions, PromiseWithError, Registry, ThrowableError, asyncIteratorToStream, asyncIteratorToUnproxiedDataStream, asyncIteratorToStream as eventIteratorToStream, asyncIteratorToUnproxiedDataStream as eventIteratorToUnproxiedDataStream, onAsyncIteratorObjectError, onError, onFinish, onReadableStreamError, onStart, onSuccess, streamToAsyncIteratorObject, streamToAsyncIteratorObject as streamToEventIterator } from '@orpc/shared';
5
- import { C as Context, d as Middleware, M as MergedContext, e as MergedInitialContext, a as Procedure, f as ProcedureConfig, g as AnyMiddleware, h as Lazy, A as AnyProcedure, L as Lazyable, i as ProcedureHandler, O as OrderedMiddleware, P as ProcedureClientOptions, b as ProcedureClient } from './shared/server.BWhT-63L.mjs';
6
- 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, c as ProcedureClientInterceptor, r as ProcedureClientInterceptorOptions, s as ProcedureDefinition, t as ProcedureHandlerOptions, u as createProcedureClient, v as unlazy } from './shared/server.BWhT-63L.mjs';
7
- import { A as AnyRouter, R as Router, C as ContractedRouter, I as InferRouterInitialContext } from './shared/server.TjEHK8V3.mjs';
8
- export { a as InferRouterCurrentContexts, b as InferRouterError, c as InferRouterErrors, a as InferRouterFinalContexts, d as InferRouterInitialContexts, e as InferRouterInputs, f as InferRouterOutputs } from './shared/server.TjEHK8V3.mjs';
4
+ export { AsyncCleanupFn, AsyncIteratorClass, AsyncIteratorClassNextFn, DistributiveOmit, IntersectPick, MaybeOptionalOptions, PromiseWithError, Public, Registry, ThrowableError, asyncIteratorToStream, asyncIteratorToUnproxiedDataStream, asyncIteratorToStream as eventIteratorToStream, asyncIteratorToUnproxiedDataStream as eventIteratorToUnproxiedDataStream, onAsyncIteratorObjectError, onError, onFinish, onReadableStreamError, onStart, onSuccess, streamToAsyncIteratorObject, streamToAsyncIteratorObject as streamToEventIterator } from '@orpc/shared';
5
+ import { C as Context, d as Middleware, M as MergedContext, e as MergedInitialContext, a as Procedure, f as Lazy, A as AnyProcedure, L as Lazyable, g as ProcedureHandler, h as ProcedureConfig, O as OrderedMiddleware, i as AnyMiddleware, P as ProcedureClientOptions, b as ProcedureClient } from './shared/server.DFPxP2v3.mjs';
6
+ 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, c as ProcedureClientInterceptor, r as ProcedureClientInterceptorOptions, s as ProcedureDefinition, t as ProcedureHandlerOptions, u as createProcedureClient, v as unlazy } from './shared/server.DFPxP2v3.mjs';
7
+ import { A as AnyRouter, R as Router, C as ContractedRouter, I as InferRouterInitialContext } from './shared/server.BC5BIu02.mjs';
8
+ export { a as InferRouterCurrentContexts, b as InferRouterError, c as InferRouterErrors, a as InferRouterFinalContexts, d as InferRouterInitialContexts, e as InferRouterInputs, f as InferRouterOutputs } from './shared/server.BC5BIu02.mjs';
9
9
  import { ClientOptions, ClientContext } from '@orpc/client';
10
- 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, safe, toORPCError } from '@orpc/client';
10
+ 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, isDefinedError, safe, toORPCError } from '@orpc/client';
11
11
  export { ErrorEvent, EventMeta, StandardBody, StandardBodyHint, StandardHeaders, StandardLazyRequest, StandardLazyResponse, StandardMethod, StandardRequest, StandardResponse, StandardUrl, getEventMeta, unwrapEvent, withEventMeta } from '@standard-server/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> {
@@ -15,7 +15,6 @@ interface DecoratedMiddleware<TInContext extends Context, TOutContext extends Co
15
15
  errors<T extends ErrorMap>(errors: T): DecoratedMiddleware<TInContext, TOutContext, TInput, TOutput, MergedErrorMap<TErrorMap, T>>;
16
16
  use<$OutContext extends IntersectPick<MergedContext<TInContext, TOutContext>, $OutContext>, $Input extends TInput, $InContext extends Context = MergedContext<TInContext, TOutContext>, $ErrorMap extends ErrorMap = TErrorMap>(middleware: Middleware<$InContext | MergedContext<TInContext, TOutContext>, $OutContext, $Input, TOutput, $ErrorMap>): DecoratedMiddleware<MergedInitialContext<TInContext, TOutContext, $InContext>, MergedContext<TOutContext, $OutContext>, $Input, TOutput, MergedErrorMap<$ErrorMap, TErrorMap>>;
17
17
  }
18
- declare function decorateMiddleware<TInContext extends Context, TOutContext extends Context, TInput, TOutput, TErrorMap extends ErrorMap>(middleware: Middleware<TInContext, TOutContext, TInput, TOutput, TErrorMap>): DecoratedMiddleware<TInContext, TOutContext, TInput, TOutput, TErrorMap>;
19
18
 
20
19
  declare class DecoratedProcedure<TInitialContext extends Context, TInjectedContext extends Context, TInputSchema extends AnySchema, TOutputSchema extends AnySchema, TErrorMap extends ErrorMap> extends Procedure<TInitialContext, TInjectedContext, TInputSchema, TOutputSchema, TErrorMap> {
21
20
  meta(...plugins: MetaPlugin<TInputSchema, TOutputSchema, TErrorMap>[]): DecoratedProcedure<TInitialContext, TInjectedContext, TInputSchema, TOutputSchema, TErrorMap>;
@@ -29,14 +28,6 @@ type AugmentedRouter<T extends AnyRouter, TErrorMap extends ErrorMap> = T extend
29
28
  type AugmentedRouterWithMiddlewares<T extends AnyRouter, TInitialContext extends Context, TInjectedContext extends Context, TErrorMap extends ErrorMap> = T extends Procedure<infer $InitialContext, infer $CurrentContext, infer $InputSchema, infer $OutputSchema, infer $ErrorMap> ? Procedure<MergedInitialContext<TInitialContext, TInjectedContext, $InitialContext>, $CurrentContext, $InputSchema, $OutputSchema, MergedErrorMap<TErrorMap, $ErrorMap>> : {
30
29
  [K in keyof T]: T[K] extends Lazy<infer $ extends AnyRouter> ? Lazy<AugmentedRouterWithMiddlewares<$, TInitialContext, TInjectedContext, TErrorMap>> : T[K] extends AnyRouter ? AugmentedRouterWithMiddlewares<T[K], TInitialContext, TInjectedContext, TErrorMap> : never;
31
30
  };
32
- interface AugmentRouterOptions<TErrorMap extends ErrorMap> extends AugmentContractRouterOptions<TErrorMap>, ProcedureConfig {
33
- middlewares: AnyMiddleware[];
34
- }
35
- declare function augmentRouter<T extends AnyRouter, TInitialContext extends Context, TCurrentContext extends Context, TErrorMap extends ErrorMap>(router: T, options: AugmentRouterOptions<TErrorMap>): AugmentedRouter<T, TErrorMap> | AugmentedRouterWithMiddlewares<T, TInitialContext, TCurrentContext, TErrorMap>;
36
- interface AugmentImplementedRouterOptions extends ProcedureConfig {
37
- middlewares: AnyMiddleware[];
38
- }
39
- declare function augmentImplementedRouter<T extends AnyRouter, TInitialContext extends Context, TCurrentContext extends Context>(router: T, options: AugmentImplementedRouterOptions): AugmentedRouter<T, object> | AugmentedRouterWithMiddlewares<T, TInitialContext, TCurrentContext, object>;
40
31
  /**
41
32
  * Resolves the procedure of a contract walked from a router: the procedure itself,
42
33
  * or the implementation of a contract-first procedure, looked up by its path.
@@ -436,7 +427,6 @@ type RouterImplementer<TContract extends RouterContract, TInitialContext extends
436
427
  type RouterImplementerWithMiddlewares<TContract extends RouterContract, TInitialContext extends Context, TInjectedContext extends Context> = TContract extends ProcedureContract<infer $InputSchema, infer $OutputSchema, infer $ErrorMap> ? ProcedureImplementer<TInitialContext, TInjectedContext, $InputSchema, $OutputSchema, $ErrorMap> : SharedRouterImplementerWithMiddlewares<TContract, TInitialContext, TInjectedContext> & {
437
428
  [K in keyof TContract]: TContract[K] extends RouterContract ? RouterImplementerWithMiddlewares<TContract[K], TInitialContext, TInjectedContext> : never;
438
429
  };
439
- declare function createRouterImplementer<TContract extends RouterContract, TInitialContext extends Context>(contract: TContract, config: ProcedureConfig): RouterImplementer<TContract, TInitialContext>;
440
430
 
441
431
  type Implementer<TContract extends RouterContract, TInitialContext extends Context> = {
442
432
  $context<T extends Context = DefaultInitialContext>(): Implementer<TContract, T & object>;
@@ -450,15 +440,6 @@ type Implementer<TContract extends RouterContract, TInitialContext extends Conte
450
440
  */
451
441
  declare function implement<TContract extends RouterContract, TInitialContext extends Context = DefaultInitialContext>(contract: TContract, config?: ProcedureConfig): Implementer<TContract, TInitialContext & object>;
452
442
 
453
- declare function createGuardedProcedureLazy(lazy: Lazy<unknown>): Lazy<AnyProcedure>;
454
- /**
455
- * Create a new procedure that ensure the contract is applied to the procedure.
456
- *
457
- * .input/.output/.handler mismatches are already caught by the `implementer.router`,
458
- * but .errors (in case implemented procedure error map is more than enough) and .meta cannot be
459
- * validated that way - so they must be overridden here to ensure the client always sees what the contract defines.
460
- */
461
- declare function createContractProcedure<TInitialContext extends Context, TInjectedContext extends Context, TInputSchema extends AnySchema, TOutputSchema extends AnySchema, TErrorMap extends ErrorMap>(procedure: Procedure<TInitialContext, TInjectedContext, TInputSchema, TOutputSchema, any>, contract: ProcedureContract<any, any, TErrorMap>): Procedure<TInitialContext, TInjectedContext, TInputSchema, TOutputSchema, TErrorMap>;
462
443
  type CallOptions<TInitialContext extends Context, TOutputSchema extends AnySchema, TErrorMap extends ErrorMap> = ProcedureClientOptions<TInitialContext, TOutputSchema, TErrorMap, object> & Omit<ClientOptions<object>, 'context'>;
463
444
  type CallRest<TInitialContext extends Context, TInputSchema extends AnySchema, TOutputSchema extends AnySchema, TErrorMap extends ErrorMap> = object extends CallOptions<TInitialContext, TOutputSchema, TErrorMap> ? undefined extends InferSchemaInput<TInputSchema> ? [input?: InferSchemaInput<TInputSchema>, options?: CallOptions<TInitialContext, TOutputSchema, TErrorMap>] : [input: InferSchemaInput<TInputSchema>, options?: CallOptions<TInitialContext, TOutputSchema, TErrorMap>] : [input: InferSchemaInput<TInputSchema>, options: CallOptions<TInitialContext, TOutputSchema, TErrorMap>];
464
445
  /**
@@ -491,8 +472,5 @@ type RouterClient<TRouter extends AnyRouter, TClientContext extends ClientContex
491
472
  */
492
473
  declare function createRouterClient<T extends AnyRouter, TClientContext extends ClientContext = object>(router: Lazyable<T | undefined>, ...rest: MaybeOptionalOptions<ProcedureClientOptions<InferRouterInitialContext<T>, Schema<unknown>, ErrorMap, TClientContext>>): RouterClient<T, TClientContext>;
493
474
 
494
- declare function withHiddenRouterContract<T extends Lazyable<AnyRouter>>(router: T, contract: RouterContract): T;
495
- declare function getHiddenRouterContract(router: Lazyable<AnyRouter | RouterContract>): RouterContract | undefined;
496
-
497
- export { AnyMiddleware, AnyProcedure, AnyRouter, Builder, Context, ContractedRouter, DEFAULT_ERROR_STATUS, DEFAULT_SUCCESS_STATUS, DecoratedProcedure, ImplementedProcedure, InferRouterInitialContext, Lazy, Lazyable, MergedContext, MergedInitialContext, Middleware, OrderedMiddleware, Procedure, ProcedureClient, ProcedureClientOptions, ProcedureConfig, ProcedureHandler, ProcedureImplementer, Router, SharedRouterImplementer, augmentImplementedRouter, augmentRouter, call, createContractProcedure, createGuardedProcedureLazy, createRouterClient, createRouterImplementer, decorateMiddleware, getHiddenRouterContract, getRouter, implement, os, resolveContractProcedure, unlazyRouter, walkProcedureContractsAsync, walkProcedureContractsSync, withHiddenRouterContract };
498
- export type { AugmentImplementedRouterOptions, AugmentRouterOptions, AugmentedRouter, AugmentedRouterWithMiddlewares, BuilderDefinition, BuilderWithInput, BuilderWithInputOutput, BuilderWithMiddlewares, BuilderWithOutput, CallOptions, CallRest, DecoratedMiddleware, DefaultInitialContext, Implementer, RouterClient, RouterImplementer, RouterImplementerWithMiddlewares, SharedRouterImplementerWithMiddlewares, UnlaziedRouter, WalkProcedureContractsLazyResult };
475
+ export { AnyMiddleware, AnyProcedure, AnyRouter, Builder, Context, ContractedRouter, DEFAULT_ERROR_STATUS, DEFAULT_SUCCESS_STATUS, DecoratedProcedure, ImplementedProcedure, InferRouterInitialContext, Lazy, Lazyable, MergedContext, MergedInitialContext, Middleware, OrderedMiddleware, Procedure, ProcedureClient, ProcedureClientOptions, ProcedureConfig, ProcedureHandler, ProcedureImplementer, Router, SharedRouterImplementer, call, createRouterClient, getRouter, implement, os, resolveContractProcedure, unlazyRouter, walkProcedureContractsAsync, walkProcedureContractsSync };
476
+ export type { AugmentedRouter, AugmentedRouterWithMiddlewares, BuilderDefinition, BuilderWithInput, BuilderWithInputOutput, BuilderWithMiddlewares, BuilderWithOutput, CallOptions, CallRest, DecoratedMiddleware, DefaultInitialContext, Implementer, RouterClient, RouterImplementer, RouterImplementerWithMiddlewares, SharedRouterImplementerWithMiddlewares, UnlaziedRouter, WalkProcedureContractsLazyResult };
package/dist/index.d.ts CHANGED
@@ -1,13 +1,13 @@
1
- import { ErrorMap, MergedErrorMap, AnySchema, MetaPlugin, InferSchemaOutput, InferSchemaInput, AugmentContractRouterOptions, AnyProcedureContract, RouterContract, InitialInputSchema, InitialOutputSchema, MergedSchema, ORPCErrorConstructorMap, Schema, ProcedureContractDefinition, ProcedureContract, InferRouterContractErrorMap, ORPCErrorFromErrorMap } from '@orpc/contract';
2
- export { AnyMetaPlugin, AnySchema, ErrorMap, ErrorMapItem, InferSchemaInput, InferSchemaOutput, InitialInputSchema, InitialOutputSchema, MergedErrorMap, Meta, MetaPlugin, MetaPluginDefinition, ORPCErrorConstructorMap, ORPCErrorConstructorMapItem, ORPCErrorConstructorMapItemOptions, ORPCErrorFactory, ORPCErrorFactoryOptions, ORPCErrorFromErrorMap, ProcedureContract, ProcedureContractDefinition, RouterContract, Schema, ValidationError, asyncIteratorObject, defineMeta, error, eventIterator, reconcileORPCError, type } from '@orpc/contract';
1
+ import { ErrorMap, MergedErrorMap, AnySchema, MetaPlugin, InferSchemaOutput, InferSchemaInput, AnyProcedureContract, RouterContract, InitialInputSchema, InitialOutputSchema, MergedSchema, ORPCErrorConstructorMap, Schema, ProcedureContractDefinition, ProcedureContract, InferRouterContractErrorMap, ORPCErrorFromErrorMap } from '@orpc/contract';
2
+ export { AnyMetaPlugin, AnySchema, ErrorMap, ErrorMapItem, InferSchemaInput, InferSchemaOutput, InitialInputSchema, InitialOutputSchema, MergedErrorMap, MergedSchema, Meta, MetaPlugin, MetaPluginDefinition, ORPCErrorConstructorMap, ORPCErrorConstructorMapItem, ORPCErrorConstructorMapItemOptions, ORPCErrorFactory, ORPCErrorFactoryOptions, ORPCErrorFromErrorMap, ProcedureContract, ProcedureContractDefinition, RouterContract, Schema, ValidationError, asyncIteratorObject, defineMeta, error, eventIterator, type } from '@orpc/contract';
3
3
  import { IntersectPick, Promisable, Public, PromiseWithError, ThrowableError, MaybeOptionalOptions } from '@orpc/shared';
4
- export { AsyncCleanupFn, AsyncIteratorClass, AsyncIteratorClassNextFn, MaybeOptionalOptions, PromiseWithError, Registry, ThrowableError, asyncIteratorToStream, asyncIteratorToUnproxiedDataStream, asyncIteratorToStream as eventIteratorToStream, asyncIteratorToUnproxiedDataStream as eventIteratorToUnproxiedDataStream, onAsyncIteratorObjectError, onError, onFinish, onReadableStreamError, onStart, onSuccess, streamToAsyncIteratorObject, streamToAsyncIteratorObject as streamToEventIterator } from '@orpc/shared';
5
- import { C as Context, d as Middleware, M as MergedContext, e as MergedInitialContext, a as Procedure, f as ProcedureConfig, g as AnyMiddleware, h as Lazy, A as AnyProcedure, L as Lazyable, i as ProcedureHandler, O as OrderedMiddleware, P as ProcedureClientOptions, b as ProcedureClient } from './shared/server.BWhT-63L.js';
6
- 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, c as ProcedureClientInterceptor, r as ProcedureClientInterceptorOptions, s as ProcedureDefinition, t as ProcedureHandlerOptions, u as createProcedureClient, v as unlazy } from './shared/server.BWhT-63L.js';
7
- import { A as AnyRouter, R as Router, C as ContractedRouter, I as InferRouterInitialContext } from './shared/server.DcDZdSrg.js';
8
- export { a as InferRouterCurrentContexts, b as InferRouterError, c as InferRouterErrors, a as InferRouterFinalContexts, d as InferRouterInitialContexts, e as InferRouterInputs, f as InferRouterOutputs } from './shared/server.DcDZdSrg.js';
4
+ export { AsyncCleanupFn, AsyncIteratorClass, AsyncIteratorClassNextFn, DistributiveOmit, IntersectPick, MaybeOptionalOptions, PromiseWithError, Public, Registry, ThrowableError, asyncIteratorToStream, asyncIteratorToUnproxiedDataStream, asyncIteratorToStream as eventIteratorToStream, asyncIteratorToUnproxiedDataStream as eventIteratorToUnproxiedDataStream, onAsyncIteratorObjectError, onError, onFinish, onReadableStreamError, onStart, onSuccess, streamToAsyncIteratorObject, streamToAsyncIteratorObject as streamToEventIterator } from '@orpc/shared';
5
+ import { C as Context, d as Middleware, M as MergedContext, e as MergedInitialContext, a as Procedure, f as Lazy, A as AnyProcedure, L as Lazyable, g as ProcedureHandler, h as ProcedureConfig, O as OrderedMiddleware, i as AnyMiddleware, P as ProcedureClientOptions, b as ProcedureClient } from './shared/server.DFPxP2v3.js';
6
+ 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, c as ProcedureClientInterceptor, r as ProcedureClientInterceptorOptions, s as ProcedureDefinition, t as ProcedureHandlerOptions, u as createProcedureClient, v as unlazy } from './shared/server.DFPxP2v3.js';
7
+ import { A as AnyRouter, R as Router, C as ContractedRouter, I as InferRouterInitialContext } from './shared/server.Dz7j9BEh.js';
8
+ export { a as InferRouterCurrentContexts, b as InferRouterError, c as InferRouterErrors, a as InferRouterFinalContexts, d as InferRouterInitialContexts, e as InferRouterInputs, f as InferRouterOutputs } from './shared/server.Dz7j9BEh.js';
9
9
  import { ClientOptions, ClientContext } from '@orpc/client';
10
- 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, safe, toORPCError } from '@orpc/client';
10
+ 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, isDefinedError, safe, toORPCError } from '@orpc/client';
11
11
  export { ErrorEvent, EventMeta, StandardBody, StandardBodyHint, StandardHeaders, StandardLazyRequest, StandardLazyResponse, StandardMethod, StandardRequest, StandardResponse, StandardUrl, getEventMeta, unwrapEvent, withEventMeta } from '@standard-server/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> {
@@ -15,7 +15,6 @@ interface DecoratedMiddleware<TInContext extends Context, TOutContext extends Co
15
15
  errors<T extends ErrorMap>(errors: T): DecoratedMiddleware<TInContext, TOutContext, TInput, TOutput, MergedErrorMap<TErrorMap, T>>;
16
16
  use<$OutContext extends IntersectPick<MergedContext<TInContext, TOutContext>, $OutContext>, $Input extends TInput, $InContext extends Context = MergedContext<TInContext, TOutContext>, $ErrorMap extends ErrorMap = TErrorMap>(middleware: Middleware<$InContext | MergedContext<TInContext, TOutContext>, $OutContext, $Input, TOutput, $ErrorMap>): DecoratedMiddleware<MergedInitialContext<TInContext, TOutContext, $InContext>, MergedContext<TOutContext, $OutContext>, $Input, TOutput, MergedErrorMap<$ErrorMap, TErrorMap>>;
17
17
  }
18
- declare function decorateMiddleware<TInContext extends Context, TOutContext extends Context, TInput, TOutput, TErrorMap extends ErrorMap>(middleware: Middleware<TInContext, TOutContext, TInput, TOutput, TErrorMap>): DecoratedMiddleware<TInContext, TOutContext, TInput, TOutput, TErrorMap>;
19
18
 
20
19
  declare class DecoratedProcedure<TInitialContext extends Context, TInjectedContext extends Context, TInputSchema extends AnySchema, TOutputSchema extends AnySchema, TErrorMap extends ErrorMap> extends Procedure<TInitialContext, TInjectedContext, TInputSchema, TOutputSchema, TErrorMap> {
21
20
  meta(...plugins: MetaPlugin<TInputSchema, TOutputSchema, TErrorMap>[]): DecoratedProcedure<TInitialContext, TInjectedContext, TInputSchema, TOutputSchema, TErrorMap>;
@@ -29,14 +28,6 @@ type AugmentedRouter<T extends AnyRouter, TErrorMap extends ErrorMap> = T extend
29
28
  type AugmentedRouterWithMiddlewares<T extends AnyRouter, TInitialContext extends Context, TInjectedContext extends Context, TErrorMap extends ErrorMap> = T extends Procedure<infer $InitialContext, infer $CurrentContext, infer $InputSchema, infer $OutputSchema, infer $ErrorMap> ? Procedure<MergedInitialContext<TInitialContext, TInjectedContext, $InitialContext>, $CurrentContext, $InputSchema, $OutputSchema, MergedErrorMap<TErrorMap, $ErrorMap>> : {
30
29
  [K in keyof T]: T[K] extends Lazy<infer $ extends AnyRouter> ? Lazy<AugmentedRouterWithMiddlewares<$, TInitialContext, TInjectedContext, TErrorMap>> : T[K] extends AnyRouter ? AugmentedRouterWithMiddlewares<T[K], TInitialContext, TInjectedContext, TErrorMap> : never;
31
30
  };
32
- interface AugmentRouterOptions<TErrorMap extends ErrorMap> extends AugmentContractRouterOptions<TErrorMap>, ProcedureConfig {
33
- middlewares: AnyMiddleware[];
34
- }
35
- declare function augmentRouter<T extends AnyRouter, TInitialContext extends Context, TCurrentContext extends Context, TErrorMap extends ErrorMap>(router: T, options: AugmentRouterOptions<TErrorMap>): AugmentedRouter<T, TErrorMap> | AugmentedRouterWithMiddlewares<T, TInitialContext, TCurrentContext, TErrorMap>;
36
- interface AugmentImplementedRouterOptions extends ProcedureConfig {
37
- middlewares: AnyMiddleware[];
38
- }
39
- declare function augmentImplementedRouter<T extends AnyRouter, TInitialContext extends Context, TCurrentContext extends Context>(router: T, options: AugmentImplementedRouterOptions): AugmentedRouter<T, object> | AugmentedRouterWithMiddlewares<T, TInitialContext, TCurrentContext, object>;
40
31
  /**
41
32
  * Resolves the procedure of a contract walked from a router: the procedure itself,
42
33
  * or the implementation of a contract-first procedure, looked up by its path.
@@ -436,7 +427,6 @@ type RouterImplementer<TContract extends RouterContract, TInitialContext extends
436
427
  type RouterImplementerWithMiddlewares<TContract extends RouterContract, TInitialContext extends Context, TInjectedContext extends Context> = TContract extends ProcedureContract<infer $InputSchema, infer $OutputSchema, infer $ErrorMap> ? ProcedureImplementer<TInitialContext, TInjectedContext, $InputSchema, $OutputSchema, $ErrorMap> : SharedRouterImplementerWithMiddlewares<TContract, TInitialContext, TInjectedContext> & {
437
428
  [K in keyof TContract]: TContract[K] extends RouterContract ? RouterImplementerWithMiddlewares<TContract[K], TInitialContext, TInjectedContext> : never;
438
429
  };
439
- declare function createRouterImplementer<TContract extends RouterContract, TInitialContext extends Context>(contract: TContract, config: ProcedureConfig): RouterImplementer<TContract, TInitialContext>;
440
430
 
441
431
  type Implementer<TContract extends RouterContract, TInitialContext extends Context> = {
442
432
  $context<T extends Context = DefaultInitialContext>(): Implementer<TContract, T & object>;
@@ -450,15 +440,6 @@ type Implementer<TContract extends RouterContract, TInitialContext extends Conte
450
440
  */
451
441
  declare function implement<TContract extends RouterContract, TInitialContext extends Context = DefaultInitialContext>(contract: TContract, config?: ProcedureConfig): Implementer<TContract, TInitialContext & object>;
452
442
 
453
- declare function createGuardedProcedureLazy(lazy: Lazy<unknown>): Lazy<AnyProcedure>;
454
- /**
455
- * Create a new procedure that ensure the contract is applied to the procedure.
456
- *
457
- * .input/.output/.handler mismatches are already caught by the `implementer.router`,
458
- * but .errors (in case implemented procedure error map is more than enough) and .meta cannot be
459
- * validated that way - so they must be overridden here to ensure the client always sees what the contract defines.
460
- */
461
- declare function createContractProcedure<TInitialContext extends Context, TInjectedContext extends Context, TInputSchema extends AnySchema, TOutputSchema extends AnySchema, TErrorMap extends ErrorMap>(procedure: Procedure<TInitialContext, TInjectedContext, TInputSchema, TOutputSchema, any>, contract: ProcedureContract<any, any, TErrorMap>): Procedure<TInitialContext, TInjectedContext, TInputSchema, TOutputSchema, TErrorMap>;
462
443
  type CallOptions<TInitialContext extends Context, TOutputSchema extends AnySchema, TErrorMap extends ErrorMap> = ProcedureClientOptions<TInitialContext, TOutputSchema, TErrorMap, object> & Omit<ClientOptions<object>, 'context'>;
463
444
  type CallRest<TInitialContext extends Context, TInputSchema extends AnySchema, TOutputSchema extends AnySchema, TErrorMap extends ErrorMap> = object extends CallOptions<TInitialContext, TOutputSchema, TErrorMap> ? undefined extends InferSchemaInput<TInputSchema> ? [input?: InferSchemaInput<TInputSchema>, options?: CallOptions<TInitialContext, TOutputSchema, TErrorMap>] : [input: InferSchemaInput<TInputSchema>, options?: CallOptions<TInitialContext, TOutputSchema, TErrorMap>] : [input: InferSchemaInput<TInputSchema>, options: CallOptions<TInitialContext, TOutputSchema, TErrorMap>];
464
445
  /**
@@ -491,8 +472,5 @@ type RouterClient<TRouter extends AnyRouter, TClientContext extends ClientContex
491
472
  */
492
473
  declare function createRouterClient<T extends AnyRouter, TClientContext extends ClientContext = object>(router: Lazyable<T | undefined>, ...rest: MaybeOptionalOptions<ProcedureClientOptions<InferRouterInitialContext<T>, Schema<unknown>, ErrorMap, TClientContext>>): RouterClient<T, TClientContext>;
493
474
 
494
- declare function withHiddenRouterContract<T extends Lazyable<AnyRouter>>(router: T, contract: RouterContract): T;
495
- declare function getHiddenRouterContract(router: Lazyable<AnyRouter | RouterContract>): RouterContract | undefined;
496
-
497
- export { AnyMiddleware, AnyProcedure, AnyRouter, Builder, Context, ContractedRouter, DEFAULT_ERROR_STATUS, DEFAULT_SUCCESS_STATUS, DecoratedProcedure, ImplementedProcedure, InferRouterInitialContext, Lazy, Lazyable, MergedContext, MergedInitialContext, Middleware, OrderedMiddleware, Procedure, ProcedureClient, ProcedureClientOptions, ProcedureConfig, ProcedureHandler, ProcedureImplementer, Router, SharedRouterImplementer, augmentImplementedRouter, augmentRouter, call, createContractProcedure, createGuardedProcedureLazy, createRouterClient, createRouterImplementer, decorateMiddleware, getHiddenRouterContract, getRouter, implement, os, resolveContractProcedure, unlazyRouter, walkProcedureContractsAsync, walkProcedureContractsSync, withHiddenRouterContract };
498
- export type { AugmentImplementedRouterOptions, AugmentRouterOptions, AugmentedRouter, AugmentedRouterWithMiddlewares, BuilderDefinition, BuilderWithInput, BuilderWithInputOutput, BuilderWithMiddlewares, BuilderWithOutput, CallOptions, CallRest, DecoratedMiddleware, DefaultInitialContext, Implementer, RouterClient, RouterImplementer, RouterImplementerWithMiddlewares, SharedRouterImplementerWithMiddlewares, UnlaziedRouter, WalkProcedureContractsLazyResult };
475
+ export { AnyMiddleware, AnyProcedure, AnyRouter, Builder, Context, ContractedRouter, DEFAULT_ERROR_STATUS, DEFAULT_SUCCESS_STATUS, DecoratedProcedure, ImplementedProcedure, InferRouterInitialContext, Lazy, Lazyable, MergedContext, MergedInitialContext, Middleware, OrderedMiddleware, Procedure, ProcedureClient, ProcedureClientOptions, ProcedureConfig, ProcedureHandler, ProcedureImplementer, Router, SharedRouterImplementer, call, createRouterClient, getRouter, implement, os, resolveContractProcedure, unlazyRouter, walkProcedureContractsAsync, walkProcedureContractsSync };
476
+ export type { AugmentedRouter, AugmentedRouterWithMiddlewares, BuilderDefinition, BuilderWithInput, BuilderWithInputOutput, BuilderWithMiddlewares, BuilderWithOutput, CallOptions, CallRest, DecoratedMiddleware, DefaultInitialContext, Implementer, RouterClient, RouterImplementer, RouterImplementerWithMiddlewares, SharedRouterImplementerWithMiddlewares, UnlaziedRouter, WalkProcedureContractsLazyResult };
package/dist/index.mjs CHANGED
@@ -1,14 +1,14 @@
1
1
  import { mergeErrorMap, resolveMetaPlugins, getHiddenMetaPlugins, ProcedureContract } from '@orpc/contract';
2
- export { ValidationError, asyncIteratorObject, defineMeta, error, eventIterator, reconcileORPCError, type } from '@orpc/contract';
2
+ export { ValidationError, asyncIteratorObject, defineMeta, error, eventIterator, type } from '@orpc/contract';
3
3
  import { toArray, bindMethods, isTypescriptObject, resolveMaybeOptionalOptions } from '@orpc/shared';
4
4
  export { AsyncIteratorClass, asyncIteratorToStream, asyncIteratorToUnproxiedDataStream, asyncIteratorToStream as eventIteratorToStream, asyncIteratorToUnproxiedDataStream as eventIteratorToUnproxiedDataStream, onAsyncIteratorObjectError, onError, onFinish, onReadableStreamError, onStart, onSuccess, streamToAsyncIteratorObject, streamToAsyncIteratorObject as streamToEventIterator } from '@orpc/shared';
5
- import { L as Lazy, P as Procedure, c as createProcedureClient } from './shared/server.FEqy7Hrj.mjs';
6
- export { u as unlazy } from './shared/server.FEqy7Hrj.mjs';
7
- import { D as DecoratedProcedure } from './shared/server.AVQWL-DI.mjs';
8
- import { b as augmentRouter, c as augmentImplementedRouter, d as withHiddenRouterContract, e as createGuardedProcedureLazy, g as getRouter } from './shared/server.BcxD3fmU.mjs';
9
- export { a as DEFAULT_ERROR_STATUS, D as DEFAULT_SUCCESS_STATUS, f as call, h as createContractProcedure, i as getHiddenRouterContract, r as resolveContractProcedure, u as unlazyRouter, j as walkProcedureContractsAsync, w as walkProcedureContractsSync } from './shared/server.BcxD3fmU.mjs';
5
+ import { L as Lazy, P as Procedure, c as createProcedureClient } from './shared/server.BB464y-6.mjs';
6
+ export { u as unlazy } from './shared/server.BB464y-6.mjs';
7
+ import { D as DecoratedProcedure } from './shared/server.sBQSgqK3.mjs';
8
+ import { b as augmentRouter, c as augmentImplementedRouter, d as withHiddenRouterContract, e as createGuardedProcedureLazy, g as getRouter } from './shared/server.CYbIpHbH.mjs';
9
+ export { a as DEFAULT_ERROR_STATUS, D as DEFAULT_SUCCESS_STATUS, f as call, r as resolveContractProcedure, u as unlazyRouter, h as walkProcedureContractsAsync, w as walkProcedureContractsSync } from './shared/server.CYbIpHbH.mjs';
10
10
  import { RECURSIVE_CLIENT_UNWRAP_KEYS } from '@orpc/client';
11
- export { COMMON_ERROR_STATUS_MAP, ORPCError, RPCJsonSerializer, RPCSerializer, cloneORPCError, isDefinedError, safe, toORPCError } from '@orpc/client';
11
+ export { COMMON_ERROR_STATUS_MAP, ORPCError, RPCJsonSerializer, RPCSerializer, isDefinedError, safe, toORPCError } from '@orpc/client';
12
12
  export { ErrorEvent, getEventMeta, unwrapEvent, withEventMeta } from '@standard-server/core';
13
13
 
14
14
  function decorateMiddleware(middleware) {
@@ -43,16 +43,18 @@ function decorateMiddleware(middleware) {
43
43
  {
44
44
  ...opts,
45
45
  async next(nextOpts1) {
46
+ const signal = nextOpts1?.signal ?? opts.signal;
46
47
  const result = await usedMiddleware({
47
48
  ...opts,
48
49
  context: { ...opts.context, ...nextOpts1?.context },
50
+ signal,
49
51
  next(nextOpts2, ...args2) {
50
52
  return opts.next({
51
- ...opts,
52
53
  context: {
53
54
  ...nextOpts1?.context,
54
55
  ...nextOpts2?.context
55
- }
56
+ },
57
+ signal: nextOpts2?.signal ?? signal
56
58
  }, ...args2);
57
59
  }
58
60
  }, ...args);
@@ -458,4 +460,4 @@ function createRouterClient(router, ...rest) {
458
460
  return recursive;
459
461
  }
460
462
 
461
- export { Builder, DecoratedProcedure, ImplementedProcedure, Lazy, Procedure, ProcedureImplementer, SharedRouterImplementer, augmentImplementedRouter, augmentRouter, createGuardedProcedureLazy, createProcedureClient, createRouterClient, createRouterImplementer, decorateMiddleware, getRouter, implement, os, withHiddenRouterContract };
463
+ export { Builder, DecoratedProcedure, ImplementedProcedure, Lazy, Procedure, ProcedureImplementer, SharedRouterImplementer, createProcedureClient, createRouterClient, getRouter, implement, os };
@@ -2,7 +2,7 @@ import { Value, Promisable, ThrowableError } from '@orpc/shared';
2
2
  import { StandardLazyRequest, StandardResponse, StandardHeaders, StandardMethod } from '@standard-server/core';
3
3
  import { Context } from '../index.mjs';
4
4
  import { StandardHandlerPlugin, StandardHandlerRoutingInterceptorOptions, StandardHandlerOptions, StandardHandlerInterceptorOptions } from '../adapters/standard/index.mjs';
5
- export { R as RequestLimitHandlerPlugin, a as RequestLimitHandlerPluginOptions } from '../shared/server.B4hFgqPr.mjs';
5
+ export { R as RequestLimitHandlerPlugin, a as RequestLimitHandlerPluginOptions } from '../shared/server.CTV_mC2P.mjs';
6
6
  export { BATCH_HEADER, DEFAULT_BATCH_MAX_SIZE } from '@orpc/client/plugins';
7
7
  import '@orpc/client';
8
8
  import '@orpc/contract';
@@ -2,7 +2,7 @@ import { Value, Promisable, ThrowableError } from '@orpc/shared';
2
2
  import { StandardLazyRequest, StandardResponse, StandardHeaders, StandardMethod } from '@standard-server/core';
3
3
  import { Context } from '../index.js';
4
4
  import { StandardHandlerPlugin, StandardHandlerRoutingInterceptorOptions, StandardHandlerOptions, StandardHandlerInterceptorOptions } from '../adapters/standard/index.js';
5
- export { R as RequestLimitHandlerPlugin, a as RequestLimitHandlerPluginOptions } from '../shared/server.CI0qiBzm.js';
5
+ export { R as RequestLimitHandlerPlugin, a as RequestLimitHandlerPluginOptions } from '../shared/server.CgBF3Vj1.js';
6
6
  export { BATCH_HEADER, DEFAULT_BATCH_MAX_SIZE } from '@orpc/client/plugins';
7
7
  import '@orpc/client';
8
8
  import '@orpc/contract';
@@ -1,10 +1,10 @@
1
1
  import { ORPCError } from '@orpc/client';
2
2
  import { DEFAULT_BATCH_MAX_SIZE, BATCH_HEADER } from '@orpc/client/plugins';
3
3
  export { BATCH_HEADER, DEFAULT_BATCH_MAX_SIZE } from '@orpc/client/plugins';
4
- import { toArray, value, promiseWithResolvers, isAsyncIteratorObject, isCompressibleContentType, isNoTransformCacheControl, parseAcceptEncodingQualities, isAcceptableEncoding, varyByAcceptEncoding, stringifyJSON, anyAbortSignal, override, AsyncIteratorClass, runWithSignal, AbortError, wrapAsyncIterator, wrapReadableStream } from '@orpc/shared';
4
+ import { toArray, value, promiseWithResolvers, isAsyncIteratorObject, isCompressibleContentType, isNoTransformCacheControl, parseAcceptEncodingQualities, isAcceptableEncoding, varyByAcceptEncoding, anyAbortSignal, override, AsyncIteratorClass, runWithSignal, AbortError, wrapAsyncIterator, wrapReadableStream } from '@orpc/shared';
5
5
  import { flattenStandardHeader, parseStandardUrl, generateContentDisposition, mergeStandardHeaders } from '@standard-server/core';
6
- import { isClientPeerSendMessage, ServerPeer, encodePeerMessage } from '@standard-server/peer';
7
- import { toFetchHeaders, toStandardBody, toStandardHeaders } from '@standard-server/fetch';
6
+ import { ServerPeer, isPeerMessage, isClientPeerSendMessage, encodePeerMessage } from '@standard-server/peer';
7
+ import { toFetchHeaders, toStandardBody, toFetchBody, toStandardHeaders } from '@standard-server/fetch';
8
8
  export { R as RequestLimitHandlerPlugin } from '../shared/server.1ExWFMze.mjs';
9
9
 
10
10
  const BATCH_CONTENT_TYPE = "application/vnd.orpc.batch";
@@ -22,6 +22,9 @@ async function encodeFrame(message) {
22
22
  function isBodyHeader(name) {
23
23
  return name.startsWith("content-") || name === "standard-server";
24
24
  }
25
+ function isClientPeerSendMessages(maybe) {
26
+ return Array.isArray(maybe) && maybe.every((m) => isPeerMessage(m) && isClientPeerSendMessage(m));
27
+ }
25
28
  function internalError(err) {
26
29
  Promise.reject(err);
27
30
  return { status: 500, headers: {}, body: "Internal server error" };
@@ -120,7 +123,7 @@ class BatchHandlerPlugin {
120
123
  };
121
124
  }
122
125
  const mightBeMessages = JSON.parse(data);
123
- if (!Array.isArray(mightBeMessages) || mightBeMessages.some((m) => !isClientPeerSendMessage(m))) {
126
+ if (!isClientPeerSendMessages(mightBeMessages)) {
124
127
  return {
125
128
  matched: true,
126
129
  response: { status: 400, headers: {}, body: "Invalid batch request data parameter" }
@@ -129,7 +132,7 @@ class BatchHandlerPlugin {
129
132
  messages = mightBeMessages;
130
133
  } else {
131
134
  const mightBeMessages = await interceptorOptions.request.resolveBody();
132
- if (!Array.isArray(mightBeMessages) || mightBeMessages.some((m) => !isClientPeerSendMessage(m))) {
135
+ if (!isClientPeerSendMessages(mightBeMessages)) {
133
136
  return {
134
137
  matched: true,
135
138
  response: { status: 400, headers: {}, body: "Invalid batch request body" }
@@ -245,6 +248,7 @@ class BatchHandlerPlugin {
245
248
  };
246
249
  const subrequests = runSubrequests();
247
250
  const { batchHeaders, streams } = await lifting;
251
+ const framedHeaders = { ...batchHeaders, "content-type": batchHeaders["content-type"] ?? BATCH_CONTENT_TYPE };
248
252
  if (!streams) {
249
253
  await subrequests;
250
254
  await peer.close();
@@ -254,8 +258,8 @@ class BatchHandlerPlugin {
254
258
  matched: true,
255
259
  response: {
256
260
  status,
257
- headers: batchHeaders,
258
- body: new Blob(chunks, { type: BATCH_CONTENT_TYPE })
261
+ headers: framedHeaders,
262
+ body: new Blob(chunks)
259
263
  }
260
264
  };
261
265
  }
@@ -288,7 +292,7 @@ class BatchHandlerPlugin {
288
292
  matched: true,
289
293
  response: {
290
294
  status,
291
- headers: { ...batchHeaders, "content-type": BATCH_CONTENT_TYPE },
295
+ headers: framedHeaders,
292
296
  body
293
297
  }
294
298
  };
@@ -603,10 +607,7 @@ class ResponseCompressionHandlerPlugin {
603
607
  response: {
604
608
  ...response,
605
609
  body: body.pipeThrough(new CompressionStream(encoding)),
606
- headers: {
607
- ...toCompressedHeaders(headers, encoding),
608
- "standard-server": "octet-stream"
609
- }
610
+ headers: toCompressedHeaders(headers, encoding)
610
611
  }
611
612
  };
612
613
  }
@@ -623,7 +624,7 @@ class ResponseCompressionHandlerPlugin {
623
624
  body: body.stream().pipeThrough(new CompressionStream(encoding)),
624
625
  headers: {
625
626
  ...toCompressedHeaders(headers, encoding),
626
- "standard-server": "file",
627
+ "standard-server": headers["standard-server"] ?? "file",
627
628
  "content-type": contentType,
628
629
  "content-disposition": contentDisposition
629
630
  }
@@ -668,21 +669,22 @@ class ResponseCompressionHandlerPlugin {
668
669
  } else if (body instanceof URLSearchParams) {
669
670
  const string = body.toString();
670
671
  if (string.length * AVG_BYTES_PER_CHAR >= this.threshold) {
672
+ const [, bodyHeaders] = toFetchBody(body, headers);
671
673
  return {
672
674
  ...result,
673
675
  response: {
674
676
  ...response,
675
677
  body: new Blob([string]).stream().pipeThrough(new CompressionStream(encoding)),
676
678
  headers: {
677
- ...toCompressedHeaders(headers, encoding),
678
- "standard-server": [],
679
- "content-type": "application/x-www-form-urlencoded"
679
+ ...toCompressedHeaders(bodyHeaders, encoding),
680
+ // An empty hint rather than none, so the adapter does not hint the compressed stream as `octet-stream`
681
+ "standard-server": bodyHeaders["standard-server"] ?? []
680
682
  }
681
683
  }
682
684
  };
683
685
  }
684
686
  } else if (body !== void 0 && !isAsyncIteratorObject(body)) {
685
- const string = stringifyJSON(body);
687
+ const [string, bodyHeaders] = toFetchBody(body, headers);
686
688
  if (string.length * AVG_BYTES_PER_CHAR >= this.threshold) {
687
689
  return {
688
690
  ...result,
@@ -690,9 +692,8 @@ class ResponseCompressionHandlerPlugin {
690
692
  ...response,
691
693
  body: new Blob([string]).stream().pipeThrough(new CompressionStream(encoding)),
692
694
  headers: {
693
- ...toCompressedHeaders(headers, encoding),
694
- "standard-server": [],
695
- "content-type": "application/json"
695
+ ...toCompressedHeaders(bodyHeaders, encoding),
696
+ "standard-server": bodyHeaders["standard-server"] ?? []
696
697
  }
697
698
  }
698
699
  };
@@ -1,7 +1,7 @@
1
1
  import { AnyORPCError } from '@orpc/client';
2
2
  import { OrderablePlugin, Value, Promisable, Interceptor } from '@orpc/shared';
3
3
  import { StandardLazyRequest, StandardResponse } from '@standard-server/core';
4
- import { C as Context, c as ProcedureClientInterceptor, A as AnyProcedure } from './server.BWhT-63L.js';
4
+ import { C as Context, c as ProcedureClientInterceptor, A as AnyProcedure } from './server.DFPxP2v3.mjs';
5
5
  import { Schema, ErrorMap } from '@orpc/contract';
6
6
 
7
7
  interface StandardHandlerPlugin<T extends Context> extends OrderablePlugin {
@@ -27,12 +27,6 @@ interface StandardHandlerPlugin<T extends Context> extends OrderablePlugin {
27
27
  */
28
28
  init?(options: StandardHandlerOptions<T>): StandardHandlerOptions<T>;
29
29
  }
30
- declare class CompositeStandardHandlerPlugin<T extends Context> implements StandardHandlerPlugin<T> {
31
- readonly name = "~composite";
32
- protected readonly plugins: StandardHandlerPlugin<T>[];
33
- constructor(plugins?: StandardHandlerPlugin<T>[]);
34
- init(options: StandardHandlerOptions<T>): StandardHandlerOptions<T>;
35
- }
36
30
 
37
31
  interface StandardHandlerHandleOptions<T extends Context> {
38
32
  prefix?: `/${string}` | undefined;
@@ -95,10 +89,6 @@ declare class StandardHandler<T extends Context> {
95
89
  constructor(codec: StandardHandlerCodec<T>, options: StandardHandlerOptions<T>);
96
90
  handle(request: StandardLazyRequest, options: StandardHandlerHandleOptions<T>): Promise<StandardHandlerHandleResult>;
97
91
  }
98
- declare class TracingHandlerPlugin implements StandardHandlerPlugin<any> {
99
- name: string;
100
- init(options: StandardHandlerOptions<any>): StandardHandlerOptions<any>;
101
- }
102
92
 
103
93
  interface StandardHandlerCodecResolvedProcedure {
104
94
  path: string[];
@@ -111,5 +101,5 @@ interface StandardHandlerCodec<T extends Context> {
111
101
  encodeError(error: AnyORPCError, procedure: AnyProcedure, path: string[], options: ResolvedStandardHandlerHandleOptions<T>): Promisable<StandardResponse>;
112
102
  }
113
103
 
114
- export { CompositeStandardHandlerPlugin as C, StandardHandler as S, TracingHandlerPlugin as T };
104
+ export { StandardHandler as S };
115
105
  export type { ResolvedStandardHandlerHandleOptions as R, StandardHandlerHandleOptions as a, StandardHandlerPlugin as b, StandardHandlerOptions as c, StandardHandlerRoutingInterceptorOptions as d, StandardHandlerInterceptorOptions as e, StandardHandlerCodec as f, StandardHandlerCodecResolvedProcedure as g, StandardHandlerHandleResult as h, StandardHandlerInterceptor as i, StandardHandlerRoutingInterceptor as j };
@@ -120,7 +120,7 @@ async function executeProcedureInternal(procedure, options) {
120
120
  const inputSchemas = toArray(procedure["~orpc"].inputSchemas);
121
121
  const outputSchemas = toArray(procedure["~orpc"].outputSchemas);
122
122
  const orderedMiddlewares = procedure["~orpc"].orderedMiddlewares;
123
- const next = async (midIndex, context, input) => {
123
+ const next = async (midIndex, context, input, signal) => {
124
124
  let currentInput = input;
125
125
  let middlewareInput = input;
126
126
  const startInputIndex = midIndex === 0 ? 0 : orderedMiddlewares[midIndex - 1].inputSchemasLengthAtUse ?? 0;
@@ -146,13 +146,15 @@ async function executeProcedureInternal(procedure, options) {
146
146
  {
147
147
  ...options,
148
148
  context,
149
+ signal,
149
150
  next: (...rest) => {
150
151
  const nextOptions = resolveMaybeOptionalOptions(rest);
151
152
  const nextContext = nextOptions.context ?? {};
152
153
  return next(
153
154
  midIndex + 1,
154
155
  { ...context, ...nextContext },
155
- currentInput
156
+ currentInput,
157
+ nextOptions.signal ?? signal
156
158
  );
157
159
  },
158
160
  lastEventId: options.lastEventId
@@ -166,7 +168,7 @@ async function executeProcedureInternal(procedure, options) {
166
168
  } else {
167
169
  currentOutput = await runWithSpan(
168
170
  "handler",
169
- () => procedure["~orpc"].handler({ ...options, context, input: currentInput }, currentInput)
171
+ () => procedure["~orpc"].handler({ ...options, context, input: currentInput, signal }, currentInput)
170
172
  );
171
173
  }
172
174
  const startOutputIndex = midIndex === 0 ? 0 : orderedMiddlewares[midIndex - 1].outputSchemasLengthAtUse ?? 0;
@@ -178,7 +180,7 @@ async function executeProcedureInternal(procedure, options) {
178
180
  }
179
181
  return { output: currentOutput, context: currentContext };
180
182
  };
181
- const { output } = await next(0, options.context, options.input);
183
+ const { output } = await next(0, options.context, options.input, options.signal);
182
184
  return output;
183
185
  }
184
186
 
@@ -1,5 +1,5 @@
1
1
  import { RouterContract, ProcedureContract, ORPCErrorFromErrorMap, ThrowableError, InferSchemaInput, InferSchemaOutput } from '@orpc/contract';
2
- import { C as Context, a as Procedure, L as Lazyable, M as MergedContext } from './server.BWhT-63L.mjs';
2
+ import { C as Context, a as Procedure, L as Lazyable, M as MergedContext } from './server.DFPxP2v3.mjs';
3
3
 
4
4
  type Router<TInitialContext extends Context> = Procedure<TInitialContext, any, any, any, any> | {
5
5
  [k: string]: Lazyable<Router<TInitialContext>>;
@@ -1,7 +1,7 @@
1
1
  import { Value, Promisable } from '@orpc/shared';
2
2
  import { StandardLazyRequest } from '@standard-server/core';
3
- import { C as Context } from './server.BWhT-63L.js';
4
- import { a as StandardHandlerHandleOptions } from './server.BYNQ06wN.js';
3
+ import { C as Context } from './server.DFPxP2v3.js';
4
+ import { a as StandardHandlerHandleOptions } from './server.DOg7ke6y.js';
5
5
 
6
6
  type FriendlyStandardHandlerHandleOptions<T extends Context> = Omit<StandardHandlerHandleOptions<T>, 'context'> & (object extends T ? {
7
7
  context?: Value<Promisable<T>, [request: StandardLazyRequest]> | undefined;
@@ -1,7 +1,7 @@
1
1
  import { Value, Promisable } from '@orpc/shared';
2
2
  import { StandardLazyRequest } from '@standard-server/core';
3
- import { C as Context } from './server.BWhT-63L.mjs';
4
- import { a as StandardHandlerHandleOptions } from './server.TVSii8T9.mjs';
3
+ import { C as Context } from './server.DFPxP2v3.mjs';
4
+ import { a as StandardHandlerHandleOptions } from './server.9B1jEm5a.mjs';
5
5
 
6
6
  type FriendlyStandardHandlerHandleOptions<T extends Context> = Omit<StandardHandlerHandleOptions<T>, 'context'> & (object extends T ? {
7
7
  context?: Value<Promisable<T>, [request: StandardLazyRequest]> | undefined;
@@ -1,5 +1,5 @@
1
- import { C as Context } from './server.BWhT-63L.mjs';
2
- import { b as StandardHandlerPlugin, c as StandardHandlerOptions } from './server.TVSii8T9.mjs';
1
+ import { C as Context } from './server.DFPxP2v3.mjs';
2
+ import { b as StandardHandlerPlugin, c as StandardHandlerOptions } from './server.9B1jEm5a.mjs';
3
3
 
4
4
  interface RequestLimitHandlerPluginOptions {
5
5
  /**
@@ -1,6 +1,6 @@
1
- import { resolveMetaPlugins, mergeErrorMap, ProcedureContract } from '@orpc/contract';
2
- import { omit, isTypescriptObject, getOwn } from '@orpc/shared';
3
- import { c as createProcedureClient, P as Procedure, L as Lazy, u as unlazy } from './server.FEqy7Hrj.mjs';
1
+ import { ProcedureContract, resolveMetaPlugins, mergeErrorMap } from '@orpc/contract';
2
+ import { isTypescriptObject, getOwn, omit } from '@orpc/shared';
3
+ import { c as createProcedureClient, L as Lazy, u as unlazy, P as Procedure } from './server.BB464y-6.mjs';
4
4
 
5
5
  const DEFAULT_SUCCESS_STATUS = 200;
6
6
  const DEFAULT_ERROR_STATUS = 400;
@@ -236,4 +236,4 @@ async function unlazyRouter(router) {
236
236
  return unlazied;
237
237
  }
238
238
 
239
- export { DEFAULT_SUCCESS_STATUS as D, DEFAULT_ERROR_STATUS as a, augmentRouter as b, augmentImplementedRouter as c, withHiddenRouterContract as d, createGuardedProcedureLazy as e, call as f, getRouter as g, createContractProcedure as h, getHiddenRouterContract as i, walkProcedureContractsAsync as j, resolveContractProcedure as r, unlazyRouter as u, walkProcedureContractsSync as w };
239
+ export { DEFAULT_SUCCESS_STATUS as D, DEFAULT_ERROR_STATUS as a, augmentRouter as b, augmentImplementedRouter as c, withHiddenRouterContract as d, createGuardedProcedureLazy as e, call as f, getRouter as g, walkProcedureContractsAsync as h, resolveContractProcedure as r, unlazyRouter as u, walkProcedureContractsSync as w };
@@ -1,5 +1,5 @@
1
- import { C as Context } from './server.BWhT-63L.js';
2
- import { b as StandardHandlerPlugin, c as StandardHandlerOptions } from './server.BYNQ06wN.js';
1
+ import { C as Context } from './server.DFPxP2v3.js';
2
+ import { b as StandardHandlerPlugin, c as StandardHandlerOptions } from './server.DOg7ke6y.js';
3
3
 
4
4
  interface RequestLimitHandlerPluginOptions {
5
5
  /**
@@ -1,8 +1,8 @@
1
1
  import { ORPCError, toORPCError, RPCSerializer, COMMON_ERROR_STATUS_MAP } from '@orpc/client';
2
2
  import { sortPlugins, toArray, matchesHttpPathPrefix, value, intercept, getTracer, runWithSpan, ORPC_NAME, isAsyncIteratorObject, override, traceAsyncIterator, traceReadableStream, recordSpanError, wrapAsyncIterator, toTracingException, wrapReadableStream, pathToHttpPath, normalizeHttpPath, parseEmptyableJSON, getOwn } from '@orpc/shared';
3
3
  import { flattenStandardHeader, parseStandardUrl, ErrorEvent } from '@standard-server/core';
4
- import { c as createProcedureClient, u as unlazy, P as Procedure } from './server.FEqy7Hrj.mjs';
5
- import { w as walkProcedureContractsSync, r as resolveContractProcedure, D as DEFAULT_SUCCESS_STATUS, a as DEFAULT_ERROR_STATUS } from './server.BcxD3fmU.mjs';
4
+ import { c as createProcedureClient, u as unlazy, P as Procedure } from './server.BB464y-6.mjs';
5
+ import { w as walkProcedureContractsSync, r as resolveContractProcedure, D as DEFAULT_SUCCESS_STATUS, a as DEFAULT_ERROR_STATUS } from './server.CYbIpHbH.mjs';
6
6
 
7
7
  class CompositeStandardHandlerPlugin {
8
8
  name = "~composite";
@@ -350,4 +350,4 @@ class RPCHandlerCodec {
350
350
  }
351
351
  }
352
352
 
353
- export { CompositeStandardHandlerPlugin as C, RPCHandlerCodec as R, StandardHandler as S, TracingHandlerPlugin as T, RPCMatcher as a, RPC_DEFAULT_ALLOW_METHODS as b };
353
+ export { RPCHandlerCodec as R, StandardHandler as S, RPCMatcher as a, RPC_DEFAULT_ALLOW_METHODS as b };
@@ -12,10 +12,13 @@ type MiddlewareResult<TOutContext extends Context, TOutput> = Promisable<{
12
12
  output: TOutput;
13
13
  context: TOutContext;
14
14
  }>;
15
- type MiddlewareNextOptions<TOutContext extends Context> = object extends TOutContext ? {
15
+ type MiddlewareNextOptions<TOutContext extends Context> = (object extends TOutContext ? {
16
16
  context?: TOutContext | undefined;
17
17
  } : {
18
18
  context: TOutContext;
19
+ }) & {
20
+ /** Overrides the signal for the rest of the chain. */
21
+ signal?: AbortSignal | undefined;
19
22
  };
20
23
  interface MiddlewareNext<TOutput> {
21
24
  <T extends Context = object>(...rest: MaybeOptionalOptions<MiddlewareNextOptions<T>>): MiddlewareResult<T, TOutput>;
@@ -159,5 +162,5 @@ type ProcedureClientOptions<TInitialContext extends Context, TOutputSchema exten
159
162
  });
160
163
  declare function createProcedureClient<TInitialContext extends Context, TInputSchema extends AnySchema, TOutputSchema extends AnySchema, TErrorMap extends ErrorMap, TClientContext extends ClientContext = object>(lazyableProcedure: Lazyable<Procedure<TInitialContext, any, TInputSchema, TOutputSchema, TErrorMap>>, ...rest: MaybeOptionalOptions<ProcedureClientOptions<TInitialContext, TOutputSchema, TErrorMap, TClientContext>>): ProcedureClient<TClientContext, TInputSchema, TOutputSchema, TErrorMap>;
161
164
 
162
- export { Procedure as a, Lazy as h, createProcedureClient as u, unlazy as v };
163
- export type { AnyProcedure as A, Context as C, Lazyable as L, MergedContext as M, OrderedMiddleware as O, ProcedureClientOptions as P, ProcedureClient as b, ProcedureClientInterceptor as c, Middleware as d, MergedInitialContext as e, ProcedureConfig as f, AnyMiddleware as g, ProcedureHandler as i, LazyDefinition as j, MiddlewareDefinition as k, MiddlewareDone as l, MiddlewareDoneOptions as m, MiddlewareNext as n, MiddlewareNextOptions as o, MiddlewareOptions as p, MiddlewareResult as q, ProcedureClientInterceptorOptions as r, ProcedureDefinition as s, ProcedureHandlerOptions as t };
165
+ export { Procedure as a, Lazy as f, createProcedureClient as u, unlazy as v };
166
+ export type { AnyProcedure as A, Context as C, Lazyable as L, MergedContext as M, OrderedMiddleware as O, ProcedureClientOptions as P, ProcedureClient as b, ProcedureClientInterceptor as c, Middleware as d, MergedInitialContext as e, ProcedureHandler as g, ProcedureConfig as h, AnyMiddleware as i, LazyDefinition as j, MiddlewareDefinition as k, MiddlewareDone as l, MiddlewareDoneOptions as m, MiddlewareNext as n, MiddlewareNextOptions as o, MiddlewareOptions as p, MiddlewareResult as q, ProcedureClientInterceptorOptions as r, ProcedureDefinition as s, ProcedureHandlerOptions as t };
@@ -12,10 +12,13 @@ type MiddlewareResult<TOutContext extends Context, TOutput> = Promisable<{
12
12
  output: TOutput;
13
13
  context: TOutContext;
14
14
  }>;
15
- type MiddlewareNextOptions<TOutContext extends Context> = object extends TOutContext ? {
15
+ type MiddlewareNextOptions<TOutContext extends Context> = (object extends TOutContext ? {
16
16
  context?: TOutContext | undefined;
17
17
  } : {
18
18
  context: TOutContext;
19
+ }) & {
20
+ /** Overrides the signal for the rest of the chain. */
21
+ signal?: AbortSignal | undefined;
19
22
  };
20
23
  interface MiddlewareNext<TOutput> {
21
24
  <T extends Context = object>(...rest: MaybeOptionalOptions<MiddlewareNextOptions<T>>): MiddlewareResult<T, TOutput>;
@@ -159,5 +162,5 @@ type ProcedureClientOptions<TInitialContext extends Context, TOutputSchema exten
159
162
  });
160
163
  declare function createProcedureClient<TInitialContext extends Context, TInputSchema extends AnySchema, TOutputSchema extends AnySchema, TErrorMap extends ErrorMap, TClientContext extends ClientContext = object>(lazyableProcedure: Lazyable<Procedure<TInitialContext, any, TInputSchema, TOutputSchema, TErrorMap>>, ...rest: MaybeOptionalOptions<ProcedureClientOptions<TInitialContext, TOutputSchema, TErrorMap, TClientContext>>): ProcedureClient<TClientContext, TInputSchema, TOutputSchema, TErrorMap>;
161
164
 
162
- export { Procedure as a, Lazy as h, createProcedureClient as u, unlazy as v };
163
- export type { AnyProcedure as A, Context as C, Lazyable as L, MergedContext as M, OrderedMiddleware as O, ProcedureClientOptions as P, ProcedureClient as b, ProcedureClientInterceptor as c, Middleware as d, MergedInitialContext as e, ProcedureConfig as f, AnyMiddleware as g, ProcedureHandler as i, LazyDefinition as j, MiddlewareDefinition as k, MiddlewareDone as l, MiddlewareDoneOptions as m, MiddlewareNext as n, MiddlewareNextOptions as o, MiddlewareOptions as p, MiddlewareResult as q, ProcedureClientInterceptorOptions as r, ProcedureDefinition as s, ProcedureHandlerOptions as t };
165
+ export { Procedure as a, Lazy as f, createProcedureClient as u, unlazy as v };
166
+ export type { AnyProcedure as A, Context as C, Lazyable as L, MergedContext as M, OrderedMiddleware as O, ProcedureClientOptions as P, ProcedureClient as b, ProcedureClientInterceptor as c, Middleware as d, MergedInitialContext as e, ProcedureHandler as g, ProcedureConfig as h, AnyMiddleware as i, LazyDefinition as j, MiddlewareDefinition as k, MiddlewareDone as l, MiddlewareDoneOptions as m, MiddlewareNext as n, MiddlewareNextOptions as o, MiddlewareOptions as p, MiddlewareResult as q, ProcedureClientInterceptorOptions as r, ProcedureDefinition as s, ProcedureHandlerOptions as t };
@@ -1,7 +1,7 @@
1
1
  import { AnyORPCError } from '@orpc/client';
2
2
  import { OrderablePlugin, Value, Promisable, Interceptor } from '@orpc/shared';
3
3
  import { StandardLazyRequest, StandardResponse } from '@standard-server/core';
4
- import { C as Context, c as ProcedureClientInterceptor, A as AnyProcedure } from './server.BWhT-63L.mjs';
4
+ import { C as Context, c as ProcedureClientInterceptor, A as AnyProcedure } from './server.DFPxP2v3.js';
5
5
  import { Schema, ErrorMap } from '@orpc/contract';
6
6
 
7
7
  interface StandardHandlerPlugin<T extends Context> extends OrderablePlugin {
@@ -27,12 +27,6 @@ interface StandardHandlerPlugin<T extends Context> extends OrderablePlugin {
27
27
  */
28
28
  init?(options: StandardHandlerOptions<T>): StandardHandlerOptions<T>;
29
29
  }
30
- declare class CompositeStandardHandlerPlugin<T extends Context> implements StandardHandlerPlugin<T> {
31
- readonly name = "~composite";
32
- protected readonly plugins: StandardHandlerPlugin<T>[];
33
- constructor(plugins?: StandardHandlerPlugin<T>[]);
34
- init(options: StandardHandlerOptions<T>): StandardHandlerOptions<T>;
35
- }
36
30
 
37
31
  interface StandardHandlerHandleOptions<T extends Context> {
38
32
  prefix?: `/${string}` | undefined;
@@ -95,10 +89,6 @@ declare class StandardHandler<T extends Context> {
95
89
  constructor(codec: StandardHandlerCodec<T>, options: StandardHandlerOptions<T>);
96
90
  handle(request: StandardLazyRequest, options: StandardHandlerHandleOptions<T>): Promise<StandardHandlerHandleResult>;
97
91
  }
98
- declare class TracingHandlerPlugin implements StandardHandlerPlugin<any> {
99
- name: string;
100
- init(options: StandardHandlerOptions<any>): StandardHandlerOptions<any>;
101
- }
102
92
 
103
93
  interface StandardHandlerCodecResolvedProcedure {
104
94
  path: string[];
@@ -111,5 +101,5 @@ interface StandardHandlerCodec<T extends Context> {
111
101
  encodeError(error: AnyORPCError, procedure: AnyProcedure, path: string[], options: ResolvedStandardHandlerHandleOptions<T>): Promisable<StandardResponse>;
112
102
  }
113
103
 
114
- export { CompositeStandardHandlerPlugin as C, StandardHandler as S, TracingHandlerPlugin as T };
104
+ export { StandardHandler as S };
115
105
  export type { ResolvedStandardHandlerHandleOptions as R, StandardHandlerHandleOptions as a, StandardHandlerPlugin as b, StandardHandlerOptions as c, StandardHandlerRoutingInterceptorOptions as d, StandardHandlerInterceptorOptions as e, StandardHandlerCodec as f, StandardHandlerCodecResolvedProcedure as g, StandardHandlerHandleResult as h, StandardHandlerInterceptor as i, StandardHandlerRoutingInterceptor as j };
@@ -1,5 +1,5 @@
1
1
  import { RouterContract, ProcedureContract, ORPCErrorFromErrorMap, ThrowableError, InferSchemaInput, InferSchemaOutput } from '@orpc/contract';
2
- import { C as Context, a as Procedure, L as Lazyable, M as MergedContext } from './server.BWhT-63L.js';
2
+ import { C as Context, a as Procedure, L as Lazyable, M as MergedContext } from './server.DFPxP2v3.js';
3
3
 
4
4
  type Router<TInitialContext extends Context> = Procedure<TInitialContext, any, any, any, any> | {
5
5
  [k: string]: Lazyable<Router<TInitialContext>>;
@@ -1,5 +1,5 @@
1
1
  import { resolveMetaPlugins, mergeErrorMap, getHiddenMetaPlugins } from '@orpc/contract';
2
- import { P as Procedure } from './server.FEqy7Hrj.mjs';
2
+ import { P as Procedure } from './server.BB464y-6.mjs';
3
3
 
4
4
  class DecoratedProcedure extends Procedure {
5
5
  meta(...plugins) {
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.45",
4
+ "version": "2.0.0-beta.47",
5
5
  "description": "Build typesafe APIs with oRPC: RPC and OpenAPI support, middleware, and adapters for Node.js, Bun, Deno, Fetch, Fastify, WebSocket, AWS Lambda, and more",
6
6
  "license": "MIT",
7
7
  "funding": [
@@ -117,15 +117,15 @@
117
117
  }
118
118
  },
119
119
  "dependencies": {
120
- "@orpc/client": "2.0.0-beta.45",
121
- "@orpc/contract": "2.0.0-beta.45",
122
- "@orpc/shared": "2.0.0-beta.45",
123
- "@standard-server/aws-lambda": "~0.11.0",
124
- "@standard-server/core": "~0.11.0",
125
- "@standard-server/fastify": "~0.11.0",
126
- "@standard-server/fetch": "~0.11.0",
127
- "@standard-server/node": "~0.11.0",
128
- "@standard-server/peer": "~0.11.0",
120
+ "@orpc/client": "2.0.0-beta.47",
121
+ "@orpc/contract": "2.0.0-beta.47",
122
+ "@orpc/shared": "2.0.0-beta.47",
123
+ "@standard-server/aws-lambda": "~0.13.0",
124
+ "@standard-server/core": "~0.13.0",
125
+ "@standard-server/fastify": "~0.13.0",
126
+ "@standard-server/fetch": "~0.13.0",
127
+ "@standard-server/node": "~0.13.0",
128
+ "@standard-server/peer": "~0.13.0",
129
129
  "cookie": "^2.0.1"
130
130
  },
131
131
  "devDependencies": {