@orpc/server 0.0.0-next.e565b64 → 0.0.0-next.e7896e2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -49,14 +49,12 @@ You can find the full documentation [here](https://orpc.unnoq.com).
49
49
  - [@orpc/contract](https://www.npmjs.com/package/@orpc/contract): Build your API contract.
50
50
  - [@orpc/server](https://www.npmjs.com/package/@orpc/server): Build your API or implement API contract.
51
51
  - [@orpc/client](https://www.npmjs.com/package/@orpc/client): Consume your API on the client with type-safety.
52
- - [@orpc/nest](https://www.npmjs.com/package/@orpc/nest): Deeply integrate oRPC with NestJS.
52
+ - [@orpc/openapi](https://www.npmjs.com/package/@orpc/openapi): Generate OpenAPI specs and handle OpenAPI requests.
53
+ - [@orpc/nest](https://www.npmjs.com/package/@orpc/nest): Deeply integrate oRPC with [NestJS](https://nestjs.com/).
53
54
  - [@orpc/react](https://www.npmjs.com/package/@orpc/react): Utilities for integrating oRPC with React and React Server Actions.
54
- - [@orpc/react-query](https://www.npmjs.com/package/@orpc/react-query): Integration with [React Query](https://tanstack.com/query/latest/docs/framework/react/overview).
55
- - [@orpc/vue-query](https://www.npmjs.com/package/@orpc/vue-query): Integration with [Vue Query](https://tanstack.com/query/latest/docs/framework/vue/overview).
56
- - [@orpc/solid-query](https://www.npmjs.com/package/@orpc/solid-query): Integration with [Solid Query](https://tanstack.com/query/latest/docs/framework/solid/overview).
57
- - [@orpc/svelte-query](https://www.npmjs.com/package/@orpc/svelte-query): Integration with [Svelte Query](https://tanstack.com/query/latest/docs/framework/svelte/overview).
55
+ - [@orpc/tanstack-query](https://www.npmjs.com/package/@orpc/tanstack-query): [TanStack Query](https://tanstack.com/query/latest) integration.
58
56
  - [@orpc/vue-colada](https://www.npmjs.com/package/@orpc/vue-colada): Integration with [Pinia Colada](https://pinia-colada.esm.dev/).
59
- - [@orpc/openapi](https://www.npmjs.com/package/@orpc/openapi): Generate OpenAPI specs and handle OpenAPI requests.
57
+ - [@orpc/hey-api](https://www.npmjs.com/package/@orpc/hey-api): [Hey API](https://heyapi.dev/) integration.
60
58
  - [@orpc/zod](https://www.npmjs.com/package/@orpc/zod): More schemas that [Zod](https://zod.dev/) doesn't support yet.
61
59
  - [@orpc/valibot](https://www.npmjs.com/package/@orpc/valibot): OpenAPI spec generation from [Valibot](https://valibot.dev/).
62
60
  - [@orpc/arktype](https://www.npmjs.com/package/@orpc/arktype): OpenAPI spec generation from [ArkType](https://arktype.io/).
@@ -1,12 +1,12 @@
1
1
  import { resolveMaybeOptionalOptions } from '@orpc/shared';
2
2
  import { toStandardLazyRequest, sendStandardResponse } from '@orpc/standard-server-aws-lambda';
3
- import { r as resolveFriendlyStandardHandleOptions } from '../../shared/server.BVwwTHyO.mjs';
4
- import '@orpc/standard-server/batch';
3
+ import { r as resolveFriendlyStandardHandleOptions } from '../../shared/server.DZ5BIITo.mjs';
5
4
  import '@orpc/standard-server';
5
+ import '@orpc/standard-server/batch';
6
6
  import '@orpc/client';
7
7
  import { S as StrictGetMethodPlugin } from '../../shared/server.BW-nUGgA.mjs';
8
8
  import '@orpc/contract';
9
- import { b as StandardRPCHandler } from '../../shared/server.4FnxLwwr.mjs';
9
+ import { b as StandardRPCHandler } from '../../shared/server.CHvOkcM3.mjs';
10
10
  import '@orpc/client/standard';
11
11
  import '../../shared/server.DG7Tamti.mjs';
12
12
 
@@ -1,10 +1,10 @@
1
1
  import { resolveMaybeOptionalOptions } from '@orpc/shared';
2
2
  import { ServerPeer } from '@orpc/standard-server-peer';
3
- import { r as resolveFriendlyStandardHandleOptions } from '../../shared/server.BVwwTHyO.mjs';
3
+ import { r as resolveFriendlyStandardHandleOptions } from '../../shared/server.DZ5BIITo.mjs';
4
4
  import '@orpc/client';
5
5
  import '@orpc/standard-server';
6
6
  import '@orpc/contract';
7
- import { b as StandardRPCHandler } from '../../shared/server.4FnxLwwr.mjs';
7
+ import { b as StandardRPCHandler } from '../../shared/server.CHvOkcM3.mjs';
8
8
  import '@orpc/client/standard';
9
9
  import '../../shared/server.DG7Tamti.mjs';
10
10
 
@@ -1,10 +1,10 @@
1
1
  import { resolveMaybeOptionalOptions } from '@orpc/shared';
2
2
  import { ServerPeer } from '@orpc/standard-server-peer';
3
- import { r as resolveFriendlyStandardHandleOptions } from '../../shared/server.BVwwTHyO.mjs';
3
+ import { r as resolveFriendlyStandardHandleOptions } from '../../shared/server.DZ5BIITo.mjs';
4
4
  import '@orpc/client';
5
5
  import '@orpc/standard-server';
6
6
  import '@orpc/contract';
7
- import { b as StandardRPCHandler } from '../../shared/server.4FnxLwwr.mjs';
7
+ import { b as StandardRPCHandler } from '../../shared/server.CHvOkcM3.mjs';
8
8
  import '@orpc/client/standard';
9
9
  import '../../shared/server.DG7Tamti.mjs';
10
10
 
@@ -1,10 +1,10 @@
1
1
  import { ORPCError } from '@orpc/client';
2
2
  import { toArray, intercept, resolveMaybeOptionalOptions } from '@orpc/shared';
3
3
  import { toStandardLazyRequest, toFetchResponse } from '@orpc/standard-server-fetch';
4
- import { r as resolveFriendlyStandardHandleOptions } from '../../shared/server.BVwwTHyO.mjs';
4
+ import { r as resolveFriendlyStandardHandleOptions } from '../../shared/server.DZ5BIITo.mjs';
5
5
  import '@orpc/standard-server';
6
6
  import '@orpc/contract';
7
- import { C as CompositeStandardHandlerPlugin, b as StandardRPCHandler } from '../../shared/server.4FnxLwwr.mjs';
7
+ import { C as CompositeStandardHandlerPlugin, b as StandardRPCHandler } from '../../shared/server.CHvOkcM3.mjs';
8
8
  import '@orpc/client/standard';
9
9
  import '@orpc/standard-server/batch';
10
10
  import { S as StrictGetMethodPlugin } from '../../shared/server.BW-nUGgA.mjs';
@@ -1,11 +1,11 @@
1
1
  import { onMessagePortMessage, onMessagePortClose } from '@orpc/client/message-port';
2
2
  import { resolveMaybeOptionalOptions } from '@orpc/shared';
3
3
  import { ServerPeer } from '@orpc/standard-server-peer';
4
- import { r as resolveFriendlyStandardHandleOptions } from '../../shared/server.BVwwTHyO.mjs';
4
+ import { r as resolveFriendlyStandardHandleOptions } from '../../shared/server.DZ5BIITo.mjs';
5
5
  import '@orpc/client';
6
6
  import '@orpc/standard-server';
7
7
  import '@orpc/contract';
8
- import { b as StandardRPCHandler } from '../../shared/server.4FnxLwwr.mjs';
8
+ import { b as StandardRPCHandler } from '../../shared/server.CHvOkcM3.mjs';
9
9
  import '@orpc/client/standard';
10
10
  import '../../shared/server.DG7Tamti.mjs';
11
11
 
@@ -1,10 +1,10 @@
1
1
  import { ORPCError } from '@orpc/client';
2
2
  import { toArray, intercept, resolveMaybeOptionalOptions } from '@orpc/shared';
3
3
  import { toStandardLazyRequest, sendStandardResponse } from '@orpc/standard-server-node';
4
- import { r as resolveFriendlyStandardHandleOptions } from '../../shared/server.BVwwTHyO.mjs';
4
+ import { r as resolveFriendlyStandardHandleOptions } from '../../shared/server.DZ5BIITo.mjs';
5
5
  import '@orpc/standard-server';
6
6
  import '@orpc/contract';
7
- import { C as CompositeStandardHandlerPlugin, b as StandardRPCHandler } from '../../shared/server.4FnxLwwr.mjs';
7
+ import { C as CompositeStandardHandlerPlugin, b as StandardRPCHandler } from '../../shared/server.CHvOkcM3.mjs';
8
8
  import '@orpc/client/standard';
9
9
  import '@orpc/standard-server/batch';
10
10
  import { S as StrictGetMethodPlugin } from '../../shared/server.BW-nUGgA.mjs';
@@ -1,4 +1,4 @@
1
- export { C as CompositeStandardHandlerPlugin, S as StandardHandler, a as StandardRPCCodec, b as StandardRPCHandler, c as StandardRPCMatcher } from '../../shared/server.4FnxLwwr.mjs';
1
+ export { C as CompositeStandardHandlerPlugin, S as StandardHandler, a as StandardRPCCodec, b as StandardRPCHandler, c as StandardRPCMatcher } from '../../shared/server.CHvOkcM3.mjs';
2
2
  import '@orpc/client/standard';
3
3
  import '@orpc/client';
4
4
  import '@orpc/shared';
@@ -1,10 +1,10 @@
1
1
  import { resolveMaybeOptionalOptions } from '@orpc/shared';
2
2
  import { ServerPeer } from '@orpc/standard-server-peer';
3
- import { r as resolveFriendlyStandardHandleOptions } from '../../shared/server.BVwwTHyO.mjs';
3
+ import { r as resolveFriendlyStandardHandleOptions } from '../../shared/server.DZ5BIITo.mjs';
4
4
  import '@orpc/client';
5
5
  import '@orpc/standard-server';
6
6
  import '@orpc/contract';
7
- import { b as StandardRPCHandler } from '../../shared/server.4FnxLwwr.mjs';
7
+ import { b as StandardRPCHandler } from '../../shared/server.CHvOkcM3.mjs';
8
8
  import '@orpc/client/standard';
9
9
  import '../../shared/server.DG7Tamti.mjs';
10
10
 
@@ -1,10 +1,10 @@
1
1
  import { resolveMaybeOptionalOptions } from '@orpc/shared';
2
2
  import { ServerPeer } from '@orpc/standard-server-peer';
3
- import { r as resolveFriendlyStandardHandleOptions } from '../../shared/server.BVwwTHyO.mjs';
3
+ import { r as resolveFriendlyStandardHandleOptions } from '../../shared/server.DZ5BIITo.mjs';
4
4
  import '@orpc/client';
5
5
  import '@orpc/standard-server';
6
6
  import '@orpc/contract';
7
- import { b as StandardRPCHandler } from '../../shared/server.4FnxLwwr.mjs';
7
+ import { b as StandardRPCHandler } from '../../shared/server.CHvOkcM3.mjs';
8
8
  import '@orpc/client/standard';
9
9
  import '../../shared/server.DG7Tamti.mjs';
10
10
 
package/dist/index.d.mts CHANGED
@@ -1,9 +1,9 @@
1
- import { ORPCErrorJSON, ORPCError, Client, ClientContext, HTTPPath, ClientPromiseResult } from '@orpc/client';
1
+ import { ORPCErrorJSON, ORPCError, Client, ClientContext, HTTPPath, HTTPMethod, ClientPromiseResult } from '@orpc/client';
2
2
  export { ClientContext, HTTPMethod, HTTPPath, ORPCError, isDefinedError, safe } from '@orpc/client';
3
3
  import { AnySchema, ErrorMap, InferSchemaInput, InferSchemaOutput, ErrorFromErrorMap, Meta, MergedErrorMap, Route, EnhanceRouteOptions, AnyContractRouter, AnyContractProcedure, Schema, ContractRouter, ContractProcedureDef, ContractProcedure, InferContractRouterErrorMap, InferContractRouterMeta } from '@orpc/contract';
4
4
  export { ContractProcedure, ContractProcedureDef, ContractRouter, ErrorMap, ErrorMapItem, InferSchemaInput, InferSchemaOutput, InputStructure, MergedErrorMap, Meta, OutputStructure, Route, Schema, ValidationError, eventIterator, type } from '@orpc/contract';
5
5
  import { ThrowableError, IntersectPick, MaybeOptionalOptions } from '@orpc/shared';
6
- export { IntersectPick, Registry, ThrowableError, onError, onFinish, onStart, onSuccess } from '@orpc/shared';
6
+ export { EventPublisher, EventPublisherOptions, EventPublisherSubscribeIteratorOptions, IntersectPick, Registry, ThrowableError, onError, onFinish, onStart, onSuccess } from '@orpc/shared';
7
7
  import { C as Context, P as Procedure, M as Middleware, O as ORPCErrorConstructorMap, a as MergedInitialContext, b as MergedCurrentContext, c as MapInputMiddleware, d as CreateProcedureClientOptions, e as ProcedureClient, A as AnyMiddleware, L as Lazyable, f as AnyRouter, g as Lazy, h as AnyProcedure, i as ProcedureHandler, R as Router, I as InferRouterInitialContext } from './shared/server.DD2C4ujN.mjs';
8
8
  export { J as InferRouterCurrentContexts, H as InferRouterInitialContexts, K as InferRouterInputs, N as InferRouterOutputs, n as LAZY_SYMBOL, o as LazyMeta, w as MiddlewareNextFn, t as MiddlewareNextFnOptions, y as MiddlewareOptions, x as MiddlewareOutputFn, s as MiddlewareResult, k as ORPCErrorConstructorMapItem, j as ORPCErrorConstructorMapItemOptions, F as ProcedureClientInterceptorOptions, D as ProcedureDef, B as ProcedureHandlerOptions, l as createORPCErrorConstructorMap, G as createProcedureClient, r as getLazyMeta, q as isLazy, E as isProcedure, p as lazy, m as mergeCurrentContext, z as middlewareOutputFn, u as unlazy, v as validateORPCError } from './shared/server.DD2C4ujN.mjs';
9
9
  export { getEventMeta, withEventMeta } from '@orpc/standard-server';
@@ -789,6 +789,11 @@ type Implementer<TContract extends AnyContractRouter, TInitialContext extends Co
789
789
  } & ImplementerInternal<TContract, TInitialContext, TCurrentContext>;
790
790
  declare function implement<T extends AnyContractRouter, TContext extends Context = Record<never, never>>(contract: T, config?: BuilderConfig): Implementer<T, TContext, TContext>;
791
791
 
792
+ /**
793
+ * Help RPCLink automatically send requests using the specified HTTP method in the router.
794
+ */
795
+ declare function inferRPCMethodFromRouter(router: AnyRouter): (options: unknown, path: readonly string[]) => Promise<Exclude<HTTPMethod, 'HEAD'>>;
796
+
792
797
  declare function isStartWithMiddlewares(middlewares: readonly AnyMiddleware[], compare: readonly AnyMiddleware[]): boolean;
793
798
  declare function mergeMiddlewares(first: readonly AnyMiddleware[], second: readonly AnyMiddleware[], options: {
794
799
  dedupeLeading: boolean;
@@ -825,5 +830,5 @@ declare function createRouterClient<T extends AnyRouter, TClientContext extends
825
830
  declare function setHiddenRouterContract<T extends Lazyable<AnyRouter>>(router: T, contract: AnyContractRouter): T;
826
831
  declare function getHiddenRouterContract(router: Lazyable<AnyRouter | AnyContractRouter>): AnyContractRouter | undefined;
827
832
 
828
- export { AnyMiddleware, AnyProcedure, AnyRouter, Builder, Context, CreateProcedureClientOptions, DecoratedProcedure, InferRouterInitialContext, Lazy, Lazyable, MapInputMiddleware, MergedCurrentContext, MergedInitialContext, Middleware, ORPCErrorConstructorMap, Procedure, ProcedureClient, ProcedureHandler, Router, addMiddleware, call, createAccessibleLazyRouter, createActionableClient, createAssertedLazyProcedure, createContractedProcedure, createRouterClient, decorateMiddleware, enhanceRouter, fallbackConfig, getHiddenRouterContract, getRouter, implement, implementerInternal, isStartWithMiddlewares, mergeMiddlewares, os, resolveContractProcedures, setHiddenRouterContract, traverseContractProcedures, unlazyRouter };
833
+ export { AnyMiddleware, AnyProcedure, AnyRouter, Builder, Context, CreateProcedureClientOptions, DecoratedProcedure, InferRouterInitialContext, Lazy, Lazyable, MapInputMiddleware, MergedCurrentContext, MergedInitialContext, Middleware, ORPCErrorConstructorMap, Procedure, ProcedureClient, ProcedureHandler, Router, addMiddleware, call, createAccessibleLazyRouter, createActionableClient, createAssertedLazyProcedure, createContractedProcedure, createRouterClient, decorateMiddleware, enhanceRouter, fallbackConfig, getHiddenRouterContract, getRouter, implement, implementerInternal, inferRPCMethodFromRouter, isStartWithMiddlewares, mergeMiddlewares, os, resolveContractProcedures, setHiddenRouterContract, traverseContractProcedures, unlazyRouter };
829
834
  export type { AccessibleLazyRouter, ActionableClient, ActionableClientRest, ActionableClientResult, ActionableError, BuilderConfig, BuilderDef, BuilderWithMiddlewares, Config, ContractProcedureCallbackOptions, DecoratedMiddleware, EnhanceRouterOptions, EnhancedRouter, ImplementedProcedure, Implementer, ImplementerInternal, ImplementerInternalWithMiddlewares, LazyTraverseContractProceduresOptions, ProcedureActionableClient, ProcedureBuilder, ProcedureBuilderWithInput, ProcedureBuilderWithInputOutput, ProcedureBuilderWithOutput, ProcedureImplementer, RouterBuilder, RouterClient, RouterImplementer, RouterImplementerWithMiddlewares, TraverseContractProceduresOptions, UnactionableError, UnlaziedRouter };
package/dist/index.d.ts CHANGED
@@ -1,9 +1,9 @@
1
- import { ORPCErrorJSON, ORPCError, Client, ClientContext, HTTPPath, ClientPromiseResult } from '@orpc/client';
1
+ import { ORPCErrorJSON, ORPCError, Client, ClientContext, HTTPPath, HTTPMethod, ClientPromiseResult } from '@orpc/client';
2
2
  export { ClientContext, HTTPMethod, HTTPPath, ORPCError, isDefinedError, safe } from '@orpc/client';
3
3
  import { AnySchema, ErrorMap, InferSchemaInput, InferSchemaOutput, ErrorFromErrorMap, Meta, MergedErrorMap, Route, EnhanceRouteOptions, AnyContractRouter, AnyContractProcedure, Schema, ContractRouter, ContractProcedureDef, ContractProcedure, InferContractRouterErrorMap, InferContractRouterMeta } from '@orpc/contract';
4
4
  export { ContractProcedure, ContractProcedureDef, ContractRouter, ErrorMap, ErrorMapItem, InferSchemaInput, InferSchemaOutput, InputStructure, MergedErrorMap, Meta, OutputStructure, Route, Schema, ValidationError, eventIterator, type } from '@orpc/contract';
5
5
  import { ThrowableError, IntersectPick, MaybeOptionalOptions } from '@orpc/shared';
6
- export { IntersectPick, Registry, ThrowableError, onError, onFinish, onStart, onSuccess } from '@orpc/shared';
6
+ export { EventPublisher, EventPublisherOptions, EventPublisherSubscribeIteratorOptions, IntersectPick, Registry, ThrowableError, onError, onFinish, onStart, onSuccess } from '@orpc/shared';
7
7
  import { C as Context, P as Procedure, M as Middleware, O as ORPCErrorConstructorMap, a as MergedInitialContext, b as MergedCurrentContext, c as MapInputMiddleware, d as CreateProcedureClientOptions, e as ProcedureClient, A as AnyMiddleware, L as Lazyable, f as AnyRouter, g as Lazy, h as AnyProcedure, i as ProcedureHandler, R as Router, I as InferRouterInitialContext } from './shared/server.DD2C4ujN.js';
8
8
  export { J as InferRouterCurrentContexts, H as InferRouterInitialContexts, K as InferRouterInputs, N as InferRouterOutputs, n as LAZY_SYMBOL, o as LazyMeta, w as MiddlewareNextFn, t as MiddlewareNextFnOptions, y as MiddlewareOptions, x as MiddlewareOutputFn, s as MiddlewareResult, k as ORPCErrorConstructorMapItem, j as ORPCErrorConstructorMapItemOptions, F as ProcedureClientInterceptorOptions, D as ProcedureDef, B as ProcedureHandlerOptions, l as createORPCErrorConstructorMap, G as createProcedureClient, r as getLazyMeta, q as isLazy, E as isProcedure, p as lazy, m as mergeCurrentContext, z as middlewareOutputFn, u as unlazy, v as validateORPCError } from './shared/server.DD2C4ujN.js';
9
9
  export { getEventMeta, withEventMeta } from '@orpc/standard-server';
@@ -789,6 +789,11 @@ type Implementer<TContract extends AnyContractRouter, TInitialContext extends Co
789
789
  } & ImplementerInternal<TContract, TInitialContext, TCurrentContext>;
790
790
  declare function implement<T extends AnyContractRouter, TContext extends Context = Record<never, never>>(contract: T, config?: BuilderConfig): Implementer<T, TContext, TContext>;
791
791
 
792
+ /**
793
+ * Help RPCLink automatically send requests using the specified HTTP method in the router.
794
+ */
795
+ declare function inferRPCMethodFromRouter(router: AnyRouter): (options: unknown, path: readonly string[]) => Promise<Exclude<HTTPMethod, 'HEAD'>>;
796
+
792
797
  declare function isStartWithMiddlewares(middlewares: readonly AnyMiddleware[], compare: readonly AnyMiddleware[]): boolean;
793
798
  declare function mergeMiddlewares(first: readonly AnyMiddleware[], second: readonly AnyMiddleware[], options: {
794
799
  dedupeLeading: boolean;
@@ -825,5 +830,5 @@ declare function createRouterClient<T extends AnyRouter, TClientContext extends
825
830
  declare function setHiddenRouterContract<T extends Lazyable<AnyRouter>>(router: T, contract: AnyContractRouter): T;
826
831
  declare function getHiddenRouterContract(router: Lazyable<AnyRouter | AnyContractRouter>): AnyContractRouter | undefined;
827
832
 
828
- export { AnyMiddleware, AnyProcedure, AnyRouter, Builder, Context, CreateProcedureClientOptions, DecoratedProcedure, InferRouterInitialContext, Lazy, Lazyable, MapInputMiddleware, MergedCurrentContext, MergedInitialContext, Middleware, ORPCErrorConstructorMap, Procedure, ProcedureClient, ProcedureHandler, Router, addMiddleware, call, createAccessibleLazyRouter, createActionableClient, createAssertedLazyProcedure, createContractedProcedure, createRouterClient, decorateMiddleware, enhanceRouter, fallbackConfig, getHiddenRouterContract, getRouter, implement, implementerInternal, isStartWithMiddlewares, mergeMiddlewares, os, resolveContractProcedures, setHiddenRouterContract, traverseContractProcedures, unlazyRouter };
833
+ export { AnyMiddleware, AnyProcedure, AnyRouter, Builder, Context, CreateProcedureClientOptions, DecoratedProcedure, InferRouterInitialContext, Lazy, Lazyable, MapInputMiddleware, MergedCurrentContext, MergedInitialContext, Middleware, ORPCErrorConstructorMap, Procedure, ProcedureClient, ProcedureHandler, Router, addMiddleware, call, createAccessibleLazyRouter, createActionableClient, createAssertedLazyProcedure, createContractedProcedure, createRouterClient, decorateMiddleware, enhanceRouter, fallbackConfig, getHiddenRouterContract, getRouter, implement, implementerInternal, inferRPCMethodFromRouter, isStartWithMiddlewares, mergeMiddlewares, os, resolveContractProcedures, setHiddenRouterContract, traverseContractProcedures, unlazyRouter };
829
834
  export type { AccessibleLazyRouter, ActionableClient, ActionableClientRest, ActionableClientResult, ActionableError, BuilderConfig, BuilderDef, BuilderWithMiddlewares, Config, ContractProcedureCallbackOptions, DecoratedMiddleware, EnhanceRouterOptions, EnhancedRouter, ImplementedProcedure, Implementer, ImplementerInternal, ImplementerInternalWithMiddlewares, LazyTraverseContractProceduresOptions, ProcedureActionableClient, ProcedureBuilder, ProcedureBuilderWithInput, ProcedureBuilderWithInputOutput, ProcedureBuilderWithOutput, ProcedureImplementer, RouterBuilder, RouterClient, RouterImplementer, RouterImplementerWithMiddlewares, TraverseContractProceduresOptions, UnactionableError, UnlaziedRouter };
package/dist/index.mjs CHANGED
@@ -1,11 +1,11 @@
1
- import { mergeErrorMap, mergeMeta, mergeRoute, mergePrefix, mergeTags, isContractProcedure, getContractRouter } from '@orpc/contract';
1
+ import { mergeErrorMap, mergeMeta, mergeRoute, mergePrefix, mergeTags, isContractProcedure, getContractRouter, fallbackContractConfig } from '@orpc/contract';
2
2
  export { ValidationError, eventIterator, type } from '@orpc/contract';
3
- import { P as Procedure, b as addMiddleware, c as createProcedureClient, e as enhanceRouter, l as lazy, s as setHiddenRouterContract, i as isProcedure, d as isLazy, f as createAssertedLazyProcedure, g as getRouter } from './shared/server.DG7Tamti.mjs';
4
- export { L as LAZY_SYMBOL, p as call, r as createAccessibleLazyRouter, a as createContractedProcedure, h as createORPCErrorConstructorMap, q as getHiddenRouterContract, j as getLazyMeta, n as isStartWithMiddlewares, m as mergeCurrentContext, o as mergeMiddlewares, k as middlewareOutputFn, w as resolveContractProcedures, t as traverseContractProcedures, u as unlazy, x as unlazyRouter, v as validateORPCError } from './shared/server.DG7Tamti.mjs';
3
+ import { P as Procedure, b as addMiddleware, c as createProcedureClient, e as enhanceRouter, l as lazy, s as setHiddenRouterContract, u as unlazy, g as getRouter, i as isProcedure, d as isLazy, f as createAssertedLazyProcedure } from './shared/server.DG7Tamti.mjs';
4
+ export { L as LAZY_SYMBOL, p as call, r as createAccessibleLazyRouter, a as createContractedProcedure, h as createORPCErrorConstructorMap, q as getHiddenRouterContract, j as getLazyMeta, n as isStartWithMiddlewares, m as mergeCurrentContext, o as mergeMiddlewares, k as middlewareOutputFn, w as resolveContractProcedures, t as traverseContractProcedures, x as unlazyRouter, v as validateORPCError } from './shared/server.DG7Tamti.mjs';
5
5
  import { toORPCError } from '@orpc/client';
6
6
  export { ORPCError, isDefinedError, safe } from '@orpc/client';
7
7
  import { resolveMaybeOptionalOptions } from '@orpc/shared';
8
- export { onError, onFinish, onStart, onSuccess } from '@orpc/shared';
8
+ export { EventPublisher, onError, onFinish, onStart, onSuccess } from '@orpc/shared';
9
9
  export { getEventMeta, withEventMeta } from '@orpc/standard-server';
10
10
 
11
11
  const DEFAULT_CONFIG = {
@@ -448,6 +448,19 @@ function implement(contract, config = {}) {
448
448
  return impl;
449
449
  }
450
450
 
451
+ function inferRPCMethodFromRouter(router) {
452
+ return async (_, path) => {
453
+ const { default: procedure } = await unlazy(getRouter(router, path));
454
+ if (!isProcedure(procedure)) {
455
+ throw new Error(
456
+ `[inferRPCMethodFromRouter] No valid procedure found at path "${path.join(".")}". This may happen when the router is not properly configured.`
457
+ );
458
+ }
459
+ const method = fallbackContractConfig("defaultMethod", procedure["~orpc"].route.method);
460
+ return method === "HEAD" ? "GET" : method;
461
+ };
462
+ }
463
+
451
464
  function createRouterClient(router, ...rest) {
452
465
  if (isProcedure(router)) {
453
466
  const caller = createProcedureClient(router, resolveMaybeOptionalOptions(rest));
@@ -472,4 +485,4 @@ function createRouterClient(router, ...rest) {
472
485
  return recursive;
473
486
  }
474
487
 
475
- export { Builder, DecoratedProcedure, Procedure, addMiddleware, createActionableClient, createAssertedLazyProcedure, createProcedureClient, createRouterClient, decorateMiddleware, enhanceRouter, fallbackConfig, getRouter, implement, implementerInternal, isLazy, isProcedure, lazy, os, setHiddenRouterContract };
488
+ export { Builder, DecoratedProcedure, Procedure, addMiddleware, createActionableClient, createAssertedLazyProcedure, createProcedureClient, createRouterClient, decorateMiddleware, enhanceRouter, fallbackConfig, getRouter, implement, implementerInternal, inferRPCMethodFromRouter, isLazy, isProcedure, lazy, os, setHiddenRouterContract, unlazy };
@@ -33,10 +33,10 @@ interface BatchHandlerOptions<T extends Context> {
33
33
  headers?: Value<Promisable<StandardHeaders>, [responses: Promise<BatchResponseBodyItem>[], batchOptions: StandardHandlerInterceptorOptions<T>]>;
34
34
  }
35
35
  /**
36
- * The Batch Request/Response Plugin allows you to combine multiple requests and responses into a single batch,
36
+ * The Batch Requests Plugin allows you to combine multiple requests and responses into a single batch,
37
37
  * reducing the overhead of sending each one separately.
38
38
  *
39
- * @see {@link https://orpc.unnoq.com/docs/plugins/batch-request-response Batch Request/Response Plugin Docs}
39
+ * @see {@link https://orpc.unnoq.com/docs/plugins/batch-requests Batch Requests Plugin Docs}
40
40
  */
41
41
  declare class BatchHandlerPlugin<T extends Context> implements StandardHandlerPlugin<T> {
42
42
  private readonly maxSize;
@@ -33,10 +33,10 @@ interface BatchHandlerOptions<T extends Context> {
33
33
  headers?: Value<Promisable<StandardHeaders>, [responses: Promise<BatchResponseBodyItem>[], batchOptions: StandardHandlerInterceptorOptions<T>]>;
34
34
  }
35
35
  /**
36
- * The Batch Request/Response Plugin allows you to combine multiple requests and responses into a single batch,
36
+ * The Batch Requests Plugin allows you to combine multiple requests and responses into a single batch,
37
37
  * reducing the overhead of sending each one separately.
38
38
  *
39
- * @see {@link https://orpc.unnoq.com/docs/plugins/batch-request-response Batch Request/Response Plugin Docs}
39
+ * @see {@link https://orpc.unnoq.com/docs/plugins/batch-requests Batch Requests Plugin Docs}
40
40
  */
41
41
  declare class BatchHandlerPlugin<T extends Context> implements StandardHandlerPlugin<T> {
42
42
  private readonly maxSize;
@@ -1,6 +1,6 @@
1
1
  import { value, isAsyncIteratorObject } from '@orpc/shared';
2
- import { parseBatchRequest, toBatchResponse } from '@orpc/standard-server/batch';
3
2
  import { flattenHeader } from '@orpc/standard-server';
3
+ import { parseBatchRequest, toBatchResponse } from '@orpc/standard-server/batch';
4
4
  import { ORPCError } from '@orpc/client';
5
5
  export { S as StrictGetMethodPlugin } from '../shared/server.BW-nUGgA.mjs';
6
6
  import '@orpc/contract';
@@ -26,7 +26,8 @@ class BatchHandlerPlugin {
26
26
  init(options) {
27
27
  options.rootInterceptors ??= [];
28
28
  options.rootInterceptors.unshift(async (options2) => {
29
- if (options2.request.headers["x-orpc-batch"] !== "1") {
29
+ const xHeader = flattenHeader(options2.request.headers["x-orpc-batch"]);
30
+ if (xHeader === void 0) {
30
31
  return options2.next();
31
32
  }
32
33
  let isParsing = false;
@@ -69,9 +70,10 @@ class BatchHandlerPlugin {
69
70
  await Promise.race(responses);
70
71
  const status = await value(this.successStatus, responses, options2);
71
72
  const headers = await value(this.headers, responses, options2);
72
- const response = toBatchResponse({
73
+ const response = await toBatchResponse({
73
74
  status,
74
75
  headers,
76
+ mode: xHeader === "buffered" ? "buffered" : "streaming",
75
77
  body: async function* () {
76
78
  const promises = [...responses];
77
79
  while (true) {
@@ -1,6 +1,6 @@
1
1
  import { toHttpPath, StandardRPCJsonSerializer, StandardRPCSerializer } from '@orpc/client/standard';
2
2
  import { ORPCError, toORPCError } from '@orpc/client';
3
- import { toArray, intercept, parseEmptyableJSON } from '@orpc/shared';
3
+ import { toArray, intercept, parseEmptyableJSON, NullProtoObj } from '@orpc/shared';
4
4
  import { flattenHeader } from '@orpc/standard-server';
5
5
  import { c as createProcedureClient, t as traverseContractProcedures, i as isProcedure, u as unlazy, g as getRouter, a as createContractedProcedure } from './server.DG7Tamti.mjs';
6
6
 
@@ -112,7 +112,7 @@ class StandardRPCCodec {
112
112
  }
113
113
 
114
114
  class StandardRPCMatcher {
115
- tree = {};
115
+ tree = new NullProtoObj();
116
116
  pendingRouters = [];
117
117
  init(router, path = []) {
118
118
  const laziedOptions = traverseContractProcedures({ router, path }, ({ path: path2, contract }) => {
@@ -1,7 +1,7 @@
1
1
  function resolveFriendlyStandardHandleOptions(options) {
2
2
  return {
3
3
  ...options,
4
- context: options?.context ?? {}
4
+ context: options.context ?? {}
5
5
  // Context only optional if all fields are optional
6
6
  };
7
7
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@orpc/server",
3
3
  "type": "module",
4
- "version": "0.0.0-next.e565b64",
4
+ "version": "0.0.0-next.e7896e2",
5
5
  "license": "MIT",
6
6
  "homepage": "https://orpc.unnoq.com",
7
7
  "repository": {
@@ -86,18 +86,18 @@
86
86
  }
87
87
  },
88
88
  "dependencies": {
89
- "@orpc/client": "0.0.0-next.e565b64",
90
- "@orpc/contract": "0.0.0-next.e565b64",
91
- "@orpc/shared": "0.0.0-next.e565b64",
92
- "@orpc/standard-server": "0.0.0-next.e565b64",
93
- "@orpc/standard-server-aws-lambda": "0.0.0-next.e565b64",
94
- "@orpc/standard-server-fetch": "0.0.0-next.e565b64",
95
- "@orpc/standard-server-node": "0.0.0-next.e565b64",
96
- "@orpc/standard-server-peer": "0.0.0-next.e565b64"
89
+ "@orpc/client": "0.0.0-next.e7896e2",
90
+ "@orpc/shared": "0.0.0-next.e7896e2",
91
+ "@orpc/standard-server-aws-lambda": "0.0.0-next.e7896e2",
92
+ "@orpc/standard-server-fetch": "0.0.0-next.e7896e2",
93
+ "@orpc/standard-server-node": "0.0.0-next.e7896e2",
94
+ "@orpc/standard-server": "0.0.0-next.e7896e2",
95
+ "@orpc/standard-server-peer": "0.0.0-next.e7896e2",
96
+ "@orpc/contract": "0.0.0-next.e7896e2"
97
97
  },
98
98
  "devDependencies": {
99
99
  "@types/ws": "^8.18.1",
100
- "crossws": "^0.3.4",
100
+ "crossws": "^0.4.1",
101
101
  "next": "^15.3.0",
102
102
  "supertest": "^7.1.0",
103
103
  "ws": "^8.18.1"