@orpc/server 0.0.0-next.3f6c426 → 0.0.0-next.43889a7

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 (50) hide show
  1. package/dist/{chunk-B2EZJB7X.js → chunk-26GHKV43.js} +19 -21
  2. package/dist/{chunk-6A7XHEBH.js → chunk-LDIL7OEP.js} +87 -59
  3. package/dist/chunk-WUOGVGWG.js +1 -0
  4. package/dist/fetch.js +5 -22
  5. package/dist/hono.js +30 -0
  6. package/dist/index.js +702 -172
  7. package/dist/next.js +36 -0
  8. package/dist/node.js +71 -29
  9. package/dist/src/adapters/fetch/index.d.ts +0 -1
  10. package/dist/src/adapters/fetch/orpc-handler.d.ts +9 -9
  11. package/dist/src/adapters/fetch/orpc-payload-codec.d.ts +1 -1
  12. package/dist/src/adapters/fetch/types.d.ts +12 -7
  13. package/dist/src/adapters/hono/index.d.ts +3 -0
  14. package/dist/src/adapters/hono/middleware.d.ts +12 -0
  15. package/dist/src/adapters/next/index.d.ts +3 -0
  16. package/dist/src/adapters/next/serve.d.ts +19 -0
  17. package/dist/src/adapters/node/index.d.ts +1 -1
  18. package/dist/src/adapters/node/orpc-handler.d.ts +8 -8
  19. package/dist/src/adapters/node/request-listener.d.ts +28 -0
  20. package/dist/src/adapters/node/types.d.ts +11 -10
  21. package/dist/src/builder-with-errors-middlewares.d.ts +49 -0
  22. package/dist/src/builder-with-errors.d.ts +49 -0
  23. package/dist/src/builder-with-middlewares.d.ts +49 -0
  24. package/dist/src/builder.d.ts +33 -22
  25. package/dist/src/config.d.ts +6 -0
  26. package/dist/src/context.d.ts +10 -0
  27. package/dist/src/error.d.ts +10 -0
  28. package/dist/src/hidden.d.ts +2 -2
  29. package/dist/src/implementer-chainable.d.ts +11 -5
  30. package/dist/src/index.d.ts +6 -5
  31. package/dist/src/lazy-decorated.d.ts +4 -6
  32. package/dist/src/middleware-decorated.d.ts +6 -5
  33. package/dist/src/middleware.d.ts +29 -13
  34. package/dist/src/procedure-builder-with-input.d.ts +35 -0
  35. package/dist/src/procedure-builder-with-output.d.ts +34 -0
  36. package/dist/src/procedure-builder.d.ts +24 -18
  37. package/dist/src/procedure-client.d.ts +9 -22
  38. package/dist/src/procedure-decorated.d.ts +22 -11
  39. package/dist/src/procedure-implementer.d.ts +18 -13
  40. package/dist/src/procedure-utils.d.ts +17 -0
  41. package/dist/src/procedure.d.ts +37 -13
  42. package/dist/src/router-builder.d.ts +20 -16
  43. package/dist/src/router-client.d.ts +7 -6
  44. package/dist/src/router-implementer.d.ts +12 -10
  45. package/dist/src/router.d.ts +6 -6
  46. package/dist/src/types.d.ts +2 -3
  47. package/package.json +18 -8
  48. package/dist/src/adapters/fetch/composite-handler.d.ts +0 -8
  49. package/dist/src/adapters/node/composite-handler.d.ts +0 -9
  50. package/dist/src/utils.d.ts +0 -3
@@ -1,21 +1,23 @@
1
1
  import type { ContractRouter } from '@orpc/contract';
2
+ import type { ConflictContextGuard, Context, TypeCurrentContext, TypeInitialContext } from './context';
2
3
  import type { FlattenLazy } from './lazy';
3
4
  import type { Middleware } from './middleware';
4
5
  import type { Router } from './router';
5
6
  import type { AdaptedRouter } from './router-builder';
6
- import type { Context, MergeContext } from './types';
7
- export interface RouterImplementerDef<TContext extends Context, TExtraContext extends Context, TContract extends ContractRouter> {
8
- middlewares?: Middleware<MergeContext<TContext, TExtraContext>, Partial<TExtraContext> | undefined, unknown, any>[];
7
+ export interface RouterImplementerDef<TInitialContext extends Context, TCurrentContext extends Context, TContract extends ContractRouter<any>> {
8
+ __initialContext?: TypeInitialContext<TInitialContext>;
9
+ __currentContext?: TypeCurrentContext<TCurrentContext>;
10
+ middlewares: Middleware<any, any, any, any, any>[];
9
11
  contract: TContract;
10
12
  }
11
- export declare class RouterImplementer<TContext extends Context, TExtraContext extends Context, TContract extends ContractRouter> {
13
+ export declare class RouterImplementer<TInitialContext extends Context, TCurrentContext extends Context, TContract extends ContractRouter<any>> {
12
14
  '~type': "RouterImplementer";
13
- '~orpc': RouterImplementerDef<TContext, TExtraContext, TContract>;
14
- constructor(def: RouterImplementerDef<TContext, TExtraContext, TContract>);
15
- use<U extends Context & Partial<MergeContext<TContext, TExtraContext>> | undefined = undefined>(middleware: Middleware<MergeContext<TContext, TExtraContext>, U, unknown, unknown>): RouterImplementer<TContext, MergeContext<TExtraContext, U>, TContract>;
16
- router<U extends Router<MergeContext<TContext, TExtraContext>, TContract>>(router: U): AdaptedRouter<TContext, U>;
17
- lazy<U extends Router<MergeContext<TContext, TExtraContext>, TContract>>(loader: () => Promise<{
15
+ '~orpc': RouterImplementerDef<TInitialContext, TCurrentContext, TContract>;
16
+ constructor(def: RouterImplementerDef<TInitialContext, TCurrentContext, TContract>);
17
+ use<U extends Context>(middleware: Middleware<TCurrentContext, U, unknown, unknown, Record<never, never>>): ConflictContextGuard<TCurrentContext & U> & RouterImplementer<TInitialContext, TCurrentContext & U, TContract>;
18
+ router<U extends Router<TCurrentContext, TContract>>(router: U): AdaptedRouter<TInitialContext, U, Record<never, never>>;
19
+ lazy<U extends Router<TCurrentContext, TContract>>(loader: () => Promise<{
18
20
  default: U;
19
- }>): AdaptedRouter<TContext, FlattenLazy<U>>;
21
+ }>): AdaptedRouter<TInitialContext, FlattenLazy<U>, Record<never, never>>;
20
22
  }
21
23
  //# sourceMappingURL=router-implementer.d.ts.map
@@ -1,16 +1,16 @@
1
1
  import type { ContractProcedure, ContractRouter, SchemaInput, SchemaOutput } from '@orpc/contract';
2
+ import type { Context } from './context';
2
3
  import type { ANY_LAZY, Lazy, Lazyable } from './lazy';
3
4
  import type { ANY_PROCEDURE, Procedure } from './procedure';
4
- import type { Context } from './types';
5
- export type Router<TContext extends Context, TContract extends ContractRouter> = Lazyable<TContract extends ContractProcedure<infer UInputSchema, infer UOutputSchema> ? Procedure<TContext, any, UInputSchema, UOutputSchema, any> : {
6
- [K in keyof TContract]: TContract[K] extends ContractRouter ? Router<TContext, TContract[K]> : never;
5
+ export type Router<TInitialContext extends Context, TContract extends ContractRouter<any>> = Lazyable<TContract extends ContractProcedure<infer UInputSchema, infer UOutputSchema, infer UErrorMap> ? Procedure<TInitialContext, any, UInputSchema, UOutputSchema, any, UErrorMap> : {
6
+ [K in keyof TContract]: TContract[K] extends ContractRouter<any> ? Router<TInitialContext, TContract[K]> : never;
7
7
  }>;
8
8
  export type ANY_ROUTER = Router<any, any>;
9
- export type InferRouterInputs<T extends ANY_ROUTER> = T extends Lazy<infer U extends ANY_ROUTER> ? InferRouterInputs<U> : T extends Procedure<any, any, infer UInputSchema, any, any> ? SchemaInput<UInputSchema> : {
9
+ export type InferRouterInputs<T extends ANY_ROUTER> = T extends Lazy<infer U extends ANY_ROUTER> ? InferRouterInputs<U> : T extends Procedure<any, any, infer UInputSchema, any, any, any> ? SchemaInput<UInputSchema> : {
10
10
  [K in keyof T]: T[K] extends ANY_ROUTER ? InferRouterInputs<T[K]> : never;
11
11
  };
12
- export type InferRouterOutputs<T extends ANY_ROUTER> = T extends Lazy<infer U extends ANY_ROUTER> ? InferRouterOutputs<U> : T extends Procedure<any, any, any, infer UOutputSchema, infer UFuncOutput> ? SchemaOutput<UOutputSchema, UFuncOutput> : {
12
+ export type InferRouterOutputs<T extends ANY_ROUTER> = T extends Lazy<infer U extends ANY_ROUTER> ? InferRouterOutputs<U> : T extends Procedure<any, any, any, infer UOutputSchema, infer UFuncOutput, any> ? SchemaOutput<UOutputSchema, UFuncOutput> : {
13
13
  [K in keyof T]: T[K] extends ANY_ROUTER ? InferRouterOutputs<T[K]> : never;
14
14
  };
15
- export declare function getRouterChild<T extends ANY_ROUTER | Lazy<undefined>>(router: T, ...path: string[]): T extends ANY_LAZY ? Lazy<ANY_PROCEDURE | Record<string, ANY_ROUTER> | undefined> : ANY_ROUTER | Lazy<undefined> | undefined;
15
+ export declare function getRouterChild<T extends ANY_ROUTER | Lazy<undefined>>(router: T, ...path: string[]): T extends ANY_LAZY ? Lazy<ANY_PROCEDURE> | Lazy<Record<string, ANY_ROUTER>> | Lazy<undefined> : ANY_ROUTER | Lazy<undefined> | undefined;
16
16
  //# sourceMappingURL=router.d.ts.map
@@ -1,7 +1,6 @@
1
+ import type { FindGlobalInstanceType } from '@orpc/shared';
1
2
  import type { ANY_PROCEDURE } from './procedure';
2
- export type Context = Record<string, any> | undefined;
3
- export type WELL_CONTEXT = Record<string, unknown> | undefined;
4
- export type MergeContext<TA extends Context, TB extends Context> = TA extends undefined ? TB : TB extends undefined ? TA : TA & TB;
3
+ export type AbortSignal = FindGlobalInstanceType<'AbortSignal'>;
5
4
  export interface WithSignal {
6
5
  signal?: AbortSignal;
7
6
  }
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.3f6c426",
4
+ "version": "0.0.0-next.43889a7",
5
5
  "license": "MIT",
6
6
  "homepage": "https://orpc.unnoq.com",
7
7
  "repository": {
@@ -24,6 +24,16 @@
24
24
  "import": "./dist/fetch.js",
25
25
  "default": "./dist/fetch.js"
26
26
  },
27
+ "./hono": {
28
+ "types": "./dist/src/adapters/hono/index.d.ts",
29
+ "import": "./dist/hono.js",
30
+ "default": "./dist/hono.js"
31
+ },
32
+ "./next": {
33
+ "types": "./dist/src/adapters/next/index.d.ts",
34
+ "import": "./dist/next.js",
35
+ "default": "./dist/next.js"
36
+ },
27
37
  "./node": {
28
38
  "types": "./dist/src/adapters/node/index.d.ts",
29
39
  "import": "./dist/node.js",
@@ -38,16 +48,16 @@
38
48
  "!**/*.tsbuildinfo",
39
49
  "dist"
40
50
  ],
41
- "dependencies": {
42
- "@mjackson/node-fetch-server": "^0.5.0",
43
- "@orpc/contract": "0.0.0-next.3f6c426",
44
- "@orpc/shared": "0.0.0-next.3f6c426"
51
+ "peerDependencies": {
52
+ "hono": ">=4.6.0",
53
+ "next": ">=14.0.0"
45
54
  },
46
- "devDependencies": {
47
- "zod": "^3.24.1"
55
+ "dependencies": {
56
+ "@orpc/contract": "0.0.0-next.43889a7",
57
+ "@orpc/shared": "0.0.0-next.43889a7"
48
58
  },
49
59
  "scripts": {
50
- "build": "tsup --clean --sourcemap --entry.index=src/index.ts --entry.fetch=src/adapters/fetch/index.ts --entry.node=src/adapters/node/index.ts --format=esm --onSuccess='tsc -b --noCheck'",
60
+ "build": "tsup --onSuccess='tsc -b --noCheck'",
51
61
  "build:watch": "pnpm run build --watch",
52
62
  "type:check": "tsc -b"
53
63
  }
@@ -1,8 +0,0 @@
1
- import type { Context } from '../../types';
2
- import type { ConditionalFetchHandler, FetchHandler, FetchOptions } from './types';
3
- export declare class CompositeHandler<T extends Context> implements FetchHandler<T> {
4
- private readonly handlers;
5
- constructor(handlers: ConditionalFetchHandler<T>[]);
6
- fetch(request: Request, ...opt: [options: FetchOptions<T>] | (undefined extends T ? [] : never)): Promise<Response>;
7
- }
8
- //# sourceMappingURL=composite-handler.d.ts.map
@@ -1,9 +0,0 @@
1
- import type { IncomingMessage, ServerResponse } from 'node:http';
2
- import type { Context } from '../../types';
3
- import type { ConditionalRequestHandler, RequestHandler, RequestOptions } from './types';
4
- export declare class CompositeHandler<T extends Context> implements RequestHandler<T> {
5
- private readonly handlers;
6
- constructor(handlers: ConditionalRequestHandler<T>[]);
7
- handle(req: IncomingMessage, res: ServerResponse, ...opt: [options: RequestOptions<T>] | (undefined extends T ? [] : never)): Promise<void>;
8
- }
9
- //# sourceMappingURL=composite-handler.d.ts.map
@@ -1,3 +0,0 @@
1
- import type { Context, MergeContext } from './types';
2
- export declare function mergeContext<A extends Context, B extends Context>(a: A, b: B): MergeContext<A, B>;
3
- //# sourceMappingURL=utils.d.ts.map