@orpc/server 2.0.0-beta.49 → 2.0.0-beta.50

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 (139) hide show
  1. package/dist/adapters/aws-lambda/handler.d.ts +17 -15
  2. package/dist/adapters/aws-lambda/handler.js +23 -23
  3. package/dist/adapters/aws-lambda/index.d.ts +4 -16
  4. package/dist/adapters/aws-lambda/index.js +2 -2
  5. package/dist/adapters/aws-lambda/rpc-handler.d.ts +9 -9
  6. package/dist/adapters/aws-lambda/rpc-handler.js +20 -17
  7. package/dist/adapters/crossws/handler.d.ts +44 -42
  8. package/dist/adapters/crossws/handler.js +53 -60
  9. package/dist/adapters/crossws/index.d.ts +3 -2
  10. package/dist/adapters/crossws/index.js +2 -2
  11. package/dist/adapters/crossws/rpc-handler.d.ts +10 -10
  12. package/dist/adapters/crossws/rpc-handler.js +17 -14
  13. package/dist/adapters/fastify/handler.d.ts +17 -15
  14. package/dist/adapters/fastify/handler.js +20 -20
  15. package/dist/adapters/fastify/index.d.ts +3 -2
  16. package/dist/adapters/fastify/index.js +2 -2
  17. package/dist/adapters/fastify/rpc-handler.d.ts +9 -9
  18. package/dist/adapters/fastify/rpc-handler.js +16 -13
  19. package/dist/adapters/fetch/handler.d.ts +19 -17
  20. package/dist/adapters/fetch/handler.js +22 -22
  21. package/dist/adapters/fetch/index.d.ts +4 -7
  22. package/dist/adapters/fetch/index.js +3 -7
  23. package/dist/adapters/fetch/rpc-handler.d.ts +9 -9
  24. package/dist/adapters/fetch/rpc-handler.js +18 -15
  25. package/dist/adapters/message-port/handler.d.ts +58 -60
  26. package/dist/adapters/message-port/handler.js +72 -86
  27. package/dist/adapters/message-port/index.d.ts +3 -2
  28. package/dist/adapters/message-port/index.js +2 -2
  29. package/dist/adapters/message-port/rpc-handler.d.ts +9 -9
  30. package/dist/adapters/message-port/rpc-handler.js +17 -14
  31. package/dist/adapters/node/handler.d.ts +17 -15
  32. package/dist/adapters/node/handler.js +20 -20
  33. package/dist/adapters/node/index.d.ts +4 -7
  34. package/dist/adapters/node/index.js +3 -7
  35. package/dist/adapters/node/rpc-handler.d.ts +9 -9
  36. package/dist/adapters/node/rpc-handler.js +17 -14
  37. package/dist/adapters/standard/codec.d.ts +13 -13
  38. package/dist/adapters/standard/handler.d.ts +49 -49
  39. package/dist/adapters/standard/handler.js +205 -205
  40. package/dist/adapters/standard/index.d.ts +7 -6
  41. package/dist/adapters/standard/index.js +4 -5
  42. package/dist/adapters/standard/plugin.d.ts +25 -31
  43. package/dist/adapters/standard/plugin.js +14 -16
  44. package/dist/adapters/standard/rpc-handler-codec.d.ts +39 -43
  45. package/dist/adapters/standard/rpc-handler-codec.js +50 -51
  46. package/dist/adapters/standard/rpc-matcher.d.ts +40 -40
  47. package/dist/adapters/standard/rpc-matcher.js +103 -149
  48. package/dist/adapters/standard/utils.d.ts +8 -8
  49. package/dist/adapters/standard/utils.js +7 -5
  50. package/dist/adapters/standard-peer/index.d.ts +2 -1
  51. package/dist/adapters/standard-peer/index.js +1 -1
  52. package/dist/adapters/standard-peer/utils.d.ts +6 -4
  53. package/dist/adapters/standard-peer/utils.js +12 -6
  54. package/dist/adapters/websocket/handler.d.ts +52 -50
  55. package/dist/adapters/websocket/handler.js +75 -85
  56. package/dist/adapters/websocket/index.d.ts +3 -2
  57. package/dist/adapters/websocket/index.js +2 -2
  58. package/dist/adapters/websocket/rpc-handler.d.ts +9 -9
  59. package/dist/adapters/websocket/rpc-handler.js +17 -14
  60. package/dist/builder-variants.d.ts +195 -195
  61. package/dist/builder.d.ts +103 -104
  62. package/dist/builder.js +198 -224
  63. package/dist/constants.d.ts +1 -1
  64. package/dist/constants.js +4 -2
  65. package/dist/context.d.ts +3 -3
  66. package/dist/extensions/callable.d.ts +11 -11
  67. package/dist/extensions/callable.js +6 -5
  68. package/dist/helpers/base64url.d.ts +1 -1
  69. package/dist/helpers/base64url.js +44 -49
  70. package/dist/helpers/cookie.d.ts +10 -11
  71. package/dist/helpers/cookie.js +56 -63
  72. package/dist/helpers/encryption.d.ts +1 -1
  73. package/dist/helpers/encryption.js +80 -70
  74. package/dist/helpers/index.d.ts +5 -4
  75. package/dist/helpers/index.js +4 -4
  76. package/dist/helpers/signing.d.ts +1 -1
  77. package/dist/helpers/signing.js +72 -82
  78. package/dist/implementer-procedure.d.ts +12 -13
  79. package/dist/implementer-procedure.js +37 -44
  80. package/dist/implementer-router.d.ts +30 -36
  81. package/dist/implementer-router.js +92 -111
  82. package/dist/implementer.d.ts +8 -8
  83. package/dist/implementer.js +28 -35
  84. package/dist/index.d.ts +22 -61
  85. package/dist/index.js +16 -48
  86. package/dist/lazy.d.ts +14 -14
  87. package/dist/lazy.js +19 -30
  88. package/dist/middleware-decorated.d.ts +8 -9
  89. package/dist/middleware-decorated.js +66 -70
  90. package/dist/middleware.d.ts +34 -34
  91. package/dist/plugins/batch.d.ts +75 -75
  92. package/dist/plugins/batch.js +345 -379
  93. package/dist/plugins/cors.d.ts +60 -64
  94. package/dist/plugins/cors.js +118 -111
  95. package/dist/plugins/get-method-csrf-protection.d.ts +8 -6
  96. package/dist/plugins/get-method-csrf-protection.js +47 -63
  97. package/dist/plugins/head-method.d.ts +11 -9
  98. package/dist/plugins/head-method.js +97 -94
  99. package/dist/plugins/index.d.ts +15 -39
  100. package/dist/plugins/index.js +14 -29
  101. package/dist/plugins/method-override.d.ts +30 -28
  102. package/dist/plugins/method-override.js +53 -49
  103. package/dist/plugins/request-compression.d.ts +11 -9
  104. package/dist/plugins/request-compression.js +52 -79
  105. package/dist/plugins/request-headers.d.ts +10 -8
  106. package/dist/plugins/request-headers.js +27 -29
  107. package/dist/plugins/request-limit.d.ts +21 -19
  108. package/dist/plugins/request-limit.js +60 -67
  109. package/dist/plugins/response-compression.d.ts +42 -39
  110. package/dist/plugins/response-compression.js +150 -202
  111. package/dist/plugins/response-headers.d.ts +15 -13
  112. package/dist/plugins/response-headers.js +43 -46
  113. package/dist/plugins/rethrow.d.ts +25 -23
  114. package/dist/plugins/rethrow.js +46 -58
  115. package/dist/plugins/signal-sync.d.ts +7 -5
  116. package/dist/plugins/signal-sync.js +71 -86
  117. package/dist/plugins/timeout.d.ts +29 -27
  118. package/dist/plugins/timeout.js +61 -58
  119. package/dist/procedure-client.d.ts +14 -15
  120. package/dist/procedure-client.js +149 -166
  121. package/dist/procedure-decorated.d.ts +9 -9
  122. package/dist/procedure-decorated.js +36 -44
  123. package/dist/procedure-utils.d.ts +10 -30
  124. package/dist/procedure-utils.js +39 -40
  125. package/dist/procedure.d.ts +60 -60
  126. package/dist/procedure.js +18 -24
  127. package/dist/router-client.d.ts +9 -11
  128. package/dist/router-client.js +33 -41
  129. package/dist/router-hidden.js +10 -12
  130. package/dist/router-utils.d.ts +13 -30
  131. package/dist/router-utils.js +146 -191
  132. package/dist/router.d.ts +12 -26
  133. package/package.json +10 -10
  134. package/dist/adapters/standard/codec.js +0 -1
  135. package/dist/builder-variants.js +0 -1
  136. package/dist/context.js +0 -1
  137. package/dist/middleware.js +0 -1
  138. package/dist/router-hidden.d.ts +0 -5
  139. package/dist/router.js +0 -1
@@ -1,20 +1,20 @@
1
- import { resolveMaybeOptionalOptions } from '@orpc/shared';
2
- import { sendStandardResponse, toStandardLazyRequest } from '@standard-server/node';
3
- import { resolveFriendlyStandardHandlerHandleOptions } from '../standard/index.js';
4
- export class NodeHttpHandler {
5
- standardHandler;
6
- sendStandardResponseOptions;
7
- constructor(standardHandler, options = {}) {
8
- this.standardHandler = standardHandler;
9
- this.sendStandardResponseOptions = options.sendStandardResponse;
10
- }
11
- async handle(request, response, ...rest) {
12
- const standardRequest = toStandardLazyRequest(request, response);
13
- const result = await this.standardHandler.handle(standardRequest, resolveFriendlyStandardHandlerHandleOptions(resolveMaybeOptionalOptions(rest)));
14
- if (!result.matched) {
15
- return result;
16
- }
17
- await sendStandardResponse(response, result.response, this.sendStandardResponseOptions);
18
- return result;
19
- }
20
- }
1
+ import { resolveFriendlyStandardHandlerHandleOptions } from "../standard/utils.js";
2
+ import { resolveMaybeOptionalOptions } from "@orpc/shared";
3
+ import { sendStandardResponse, toStandardLazyRequest } from "@standard-server/node";
4
+ // src/adapters/node/handler.ts
5
+ var NodeHttpHandler = class {
6
+ standardHandler;
7
+ sendStandardResponseOptions;
8
+ constructor(standardHandler, options = {}) {
9
+ this.standardHandler = standardHandler;
10
+ this.sendStandardResponseOptions = options.sendStandardResponse;
11
+ }
12
+ async handle(request, response, ...rest) {
13
+ const standardRequest = toStandardLazyRequest(request, response);
14
+ const result = await this.standardHandler.handle(standardRequest, resolveFriendlyStandardHandlerHandleOptions(resolveMaybeOptionalOptions(rest)));
15
+ if (!result.matched) return result;
16
+ await sendStandardResponse(response, result.response, this.sendStandardResponseOptions);
17
+ return result;
18
+ }
19
+ };
20
+ export { NodeHttpHandler };
@@ -1,7 +1,4 @@
1
- export {
2
- /**
3
- * @deprecated Use `RequestLimitHandlerPlugin` from `@orpc/server/plugins` instead.
4
- */
5
- RequestLimitHandlerPlugin as BodyLimitPlugin, } from '../../plugins/request-limit.ts';
6
- export * from './handler.ts';
7
- export * from './rpc-handler.ts';
1
+ import { RequestLimitHandlerPlugin } from "../../plugins/request-limit.js";
2
+ import { NodeHttpHandler, NodeHttpHandlerHandleResult, NodeHttpHandlerOptions } from "./handler.js";
3
+ import { RPCHandler, RPCHandlerOptions } from "./rpc-handler.js";
4
+ export { RequestLimitHandlerPlugin as BodyLimitPlugin, NodeHttpHandler, NodeHttpHandlerHandleResult, NodeHttpHandlerOptions, RPCHandler, RPCHandlerOptions };
@@ -1,7 +1,3 @@
1
- export {
2
- /**
3
- * @deprecated Use `RequestLimitHandlerPlugin` from `@orpc/server/plugins` instead.
4
- */
5
- RequestLimitHandlerPlugin as BodyLimitPlugin, } from '../../plugins/request-limit.js';
6
- export * from './handler.js';
7
- export * from './rpc-handler.js';
1
+ export { RequestLimitHandlerPlugin as BodyLimitPlugin } from "../../plugins/request-limit.js";
2
+ export { NodeHttpHandler } from "./handler.js";
3
+ export { RPCHandler } from "./rpc-handler.js";
@@ -1,10 +1,10 @@
1
- import type { Context } from '../../context.ts';
2
- import type { Router } from '../../router.ts';
3
- import type { RPCHandlerCodecOptions, StandardHandlerOptions } from '../standard/index.ts';
4
- import type { NodeHttpHandlerOptions } from './handler.ts';
5
- import { NodeHttpHandler } from './handler.ts';
6
- export interface RPCHandlerOptions<T extends Context> extends NodeHttpHandlerOptions<T>, StandardHandlerOptions<T>, RPCHandlerCodecOptions<T> {
7
- }
1
+ import { Context } from "../../context.js";
2
+ import { StandardHandlerOptions } from "../standard/handler.js";
3
+ import { Router } from "../../router.js";
4
+ import { RPCHandlerCodecOptions } from "../standard/rpc-handler-codec.js";
5
+ import "../standard/index.js";
6
+ import { NodeHttpHandler, NodeHttpHandlerOptions } from "./handler.js";
7
+ export interface RPCHandlerOptions<T extends Context> extends NodeHttpHandlerOptions<T>, StandardHandlerOptions<T>, RPCHandlerCodecOptions<T> {}
8
8
  /**
9
9
  * Serves an oRPC router over the RPC protocol using Node.js built-in
10
10
  * HTTP request/response objects.
@@ -12,5 +12,5 @@ export interface RPCHandlerOptions<T extends Context> extends NodeHttpHandlerOpt
12
12
  * @see {@link https://orpc.dev/docs/adapters/node-http | Node HTTP Adapter}
13
13
  */
14
14
  export declare class RPCHandler<T extends Context> extends NodeHttpHandler<T> {
15
- constructor(router: Router<T>, options?: NoInfer<RPCHandlerOptions<T>>);
16
- }
15
+ constructor(router: Router<T>, options?: NoInfer<RPCHandlerOptions<T>>);
16
+ }
@@ -1,15 +1,18 @@
1
- import { RPCHandlerCodec, StandardHandler } from '../standard/index.js';
2
- import { NodeHttpHandler } from './handler.js';
1
+ import { RPCHandlerCodec } from "../standard/rpc-handler-codec.js";
2
+ import { StandardHandler } from "../standard/handler.js";
3
+ import { NodeHttpHandler } from "./handler.js";
4
+ // src/adapters/node/rpc-handler.ts
3
5
  /**
4
- * Serves an oRPC router over the RPC protocol using Node.js built-in
5
- * HTTP request/response objects.
6
- *
7
- * @see {@link https://orpc.dev/docs/adapters/node-http | Node HTTP Adapter}
8
- */
9
- export class RPCHandler extends NodeHttpHandler {
10
- constructor(router, options = {}) {
11
- const codec = new RPCHandlerCodec(router, options);
12
- const handler = new StandardHandler(codec, options);
13
- super(handler, options);
14
- }
15
- }
6
+ * Serves an oRPC router over the RPC protocol using Node.js built-in
7
+ * HTTP request/response objects.
8
+ *
9
+ * @see {@link https://orpc.dev/docs/adapters/node-http | Node HTTP Adapter}
10
+ */
11
+ var RPCHandler = class extends NodeHttpHandler {
12
+ constructor(router, options = {}) {
13
+ const codec = new RPCHandlerCodec(router, options);
14
+ const handler = new StandardHandler(codec, options);
15
+ super(handler, options);
16
+ }
17
+ };
18
+ export { RPCHandler };
@@ -1,16 +1,16 @@
1
- import type { AnyORPCError } from '@orpc/client';
2
- import type { Promisable } from '@orpc/shared';
3
- import type { StandardLazyRequest, StandardResponse } from '@standard-server/core';
4
- import type { Context } from '../../context.ts';
5
- import type { AnyProcedure } from '../../procedure.ts';
6
- import type { ResolvedStandardHandlerHandleOptions } from './handler.ts';
1
+ import { Context } from "../../context.js";
2
+ import { AnyProcedure } from "../../procedure.js";
3
+ import { ResolvedStandardHandlerHandleOptions } from "./handler.js";
4
+ import { Promisable } from "@orpc/shared";
5
+ import { AnyORPCError } from "@orpc/client";
6
+ import { StandardLazyRequest, StandardResponse } from "@standard-server/core";
7
7
  export interface StandardHandlerCodecResolvedProcedure {
8
- path: string[];
9
- procedure: AnyProcedure;
10
- decodeInput: () => Promise<unknown>;
8
+ path: string[];
9
+ procedure: AnyProcedure;
10
+ decodeInput: () => Promise<unknown>;
11
11
  }
12
12
  export interface StandardHandlerCodec<T extends Context> {
13
- resolveProcedure(request: StandardLazyRequest, options: ResolvedStandardHandlerHandleOptions<T>): Promisable<StandardHandlerCodecResolvedProcedure | undefined>;
14
- encodeOutput(output: unknown, procedure: AnyProcedure, path: string[], options: ResolvedStandardHandlerHandleOptions<T>): Promisable<StandardResponse>;
15
- encodeError(error: AnyORPCError, procedure: AnyProcedure, path: string[], options: ResolvedStandardHandlerHandleOptions<T>): Promisable<StandardResponse>;
16
- }
13
+ resolveProcedure(request: StandardLazyRequest, options: ResolvedStandardHandlerHandleOptions<T>): Promisable<StandardHandlerCodecResolvedProcedure | undefined>;
14
+ encodeOutput(output: unknown, procedure: AnyProcedure, path: string[], options: ResolvedStandardHandlerHandleOptions<T>): Promisable<StandardResponse>;
15
+ encodeError(error: AnyORPCError, procedure: AnyProcedure, path: string[], options: ResolvedStandardHandlerHandleOptions<T>): Promisable<StandardResponse>;
16
+ }
@@ -1,68 +1,68 @@
1
- import type { ErrorMap, Schema } from '@orpc/contract';
2
- import type { Interceptor, Promisable, Value } from '@orpc/shared';
3
- import type { StandardLazyRequest, StandardResponse } from '@standard-server/core';
4
- import type { Context } from '../../context.ts';
5
- import type { ProcedureClientInterceptor } from '../../procedure-client.ts';
6
- import type { StandardHandlerCodec, StandardHandlerCodecResolvedProcedure } from './codec.ts';
7
- import type { StandardHandlerPlugin } from './plugin.ts';
1
+ import { Context } from "../../context.js";
2
+ import { ProcedureClientInterceptor } from "../../procedure-client.js";
3
+ import { StandardHandlerCodec, StandardHandlerCodecResolvedProcedure } from "./codec.js";
4
+ import { StandardHandlerPlugin } from "./plugin.js";
5
+ import { ErrorMap, Schema } from "@orpc/contract";
6
+ import { Interceptor, Promisable, Value } from "@orpc/shared";
7
+ import { StandardLazyRequest, StandardResponse } from "@standard-server/core";
8
8
  export interface StandardHandlerHandleOptions<T extends Context> {
9
- prefix?: `/${string}` | undefined;
10
- /**
11
- * The initial context, or a function (sync or async) that receives the request and returns it.
12
- * The function only runs once the request passes the prefix check.
13
- */
14
- context: Value<Promisable<T>, [request: StandardLazyRequest]>;
9
+ prefix?: `/${string}` | undefined;
10
+ /**
11
+ * The initial context, or a function (sync or async) that receives the request and returns it.
12
+ * The function only runs once the request passes the prefix check.
13
+ */
14
+ context: Value<Promisable<T>, [request: StandardLazyRequest]>;
15
15
  }
16
16
  /**
17
17
  * `StandardHandlerHandleOptions` after the context has been resolved,
18
18
  * this is what interceptors and codecs receive.
19
19
  */
20
- export interface ResolvedStandardHandlerHandleOptions<T extends Context> extends Omit<StandardHandlerHandleOptions<T>, 'context'> {
21
- context: T;
20
+ export interface ResolvedStandardHandlerHandleOptions<T extends Context> extends Omit<StandardHandlerHandleOptions<T>, "context"> {
21
+ context: T;
22
22
  }
23
23
  export type StandardHandlerHandleResult = {
24
- matched: true;
25
- response: StandardResponse;
24
+ matched: true;
25
+ response: StandardResponse;
26
26
  } | {
27
- matched: false;
28
- response?: undefined;
27
+ matched: false;
28
+ response?: undefined;
29
29
  };
30
30
  export interface StandardHandlerInterceptorOptions<T extends Context> extends StandardHandlerCodecResolvedProcedure, ResolvedStandardHandlerHandleOptions<T> {
31
- request: StandardLazyRequest;
31
+ request: StandardLazyRequest;
32
32
  }
33
33
  export type StandardHandlerInterceptor<T extends Context> = Interceptor<StandardHandlerInterceptorOptions<T>, Promise<StandardResponse>>;
34
34
  export interface StandardHandlerRoutingInterceptorOptions<T extends Context> extends ResolvedStandardHandlerHandleOptions<T> {
35
- request: StandardLazyRequest;
35
+ request: StandardLazyRequest;
36
36
  }
37
37
  export type StandardHandlerRoutingInterceptor<T extends Context> = Interceptor<StandardHandlerRoutingInterceptorOptions<T>, Promise<StandardHandlerHandleResult>>;
38
38
  export interface StandardHandlerOptions<TContext extends Context> {
39
- /**
40
- * Fired on every request before routing, useful when you want
41
- * to intercept all requests regardless of whether they match a procedure or not.
42
- *
43
- * @examples
44
- * - batch plugins - separate one request into multiple and call multiple next
45
- * - openapi spec plugin - to intercept a request and early response
46
- */
47
- routingInterceptors?: StandardHandlerRoutingInterceptor<TContext>[] | undefined;
48
- /**
49
- * interceptor run after routing and before error handler,
50
- * useful for error handling, logging, metrics, etc.
51
- */
52
- interceptors?: StandardHandlerInterceptor<TContext>[] | undefined;
53
- /**
54
- *
55
- * ClientInterceptor equivalent with createRouterClient.interceptors / createProcedure.interceptors
56
- * useful for error handling, logging, metrics, etc. (not counting encoding/decoding)
57
- */
58
- clientInterceptors?: ProcedureClientInterceptor<TContext, Schema<unknown>, ErrorMap>[] | undefined;
59
- plugins?: StandardHandlerPlugin<TContext>[] | undefined;
39
+ /**
40
+ * Fired on every request before routing, useful when you want
41
+ * to intercept all requests regardless of whether they match a procedure or not.
42
+ *
43
+ * @examples
44
+ * - batch plugins - separate one request into multiple and call multiple next
45
+ * - openapi spec plugin - to intercept a request and early response
46
+ */
47
+ routingInterceptors?: StandardHandlerRoutingInterceptor<TContext>[] | undefined;
48
+ /**
49
+ * interceptor run after routing and before error handler,
50
+ * useful for error handling, logging, metrics, etc.
51
+ */
52
+ interceptors?: StandardHandlerInterceptor<TContext>[] | undefined;
53
+ /**
54
+ *
55
+ * ClientInterceptor equivalent with createRouterClient.interceptors / createProcedure.interceptors
56
+ * useful for error handling, logging, metrics, etc. (not counting encoding/decoding)
57
+ */
58
+ clientInterceptors?: ProcedureClientInterceptor<TContext, Schema<unknown>, ErrorMap>[] | undefined;
59
+ plugins?: StandardHandlerPlugin<TContext>[] | undefined;
60
60
  }
61
61
  export declare class StandardHandler<T extends Context> {
62
- private readonly codec;
63
- private readonly routingInterceptors;
64
- private readonly interceptors;
65
- private readonly clientInterceptors;
66
- constructor(codec: StandardHandlerCodec<T>, options: StandardHandlerOptions<T>);
67
- handle(request: StandardLazyRequest, options: StandardHandlerHandleOptions<T>): Promise<StandardHandlerHandleResult>;
68
- }
62
+ private readonly codec;
63
+ private readonly routingInterceptors;
64
+ private readonly interceptors;
65
+ private readonly clientInterceptors;
66
+ constructor(codec: StandardHandlerCodec<T>, options: StandardHandlerOptions<T>);
67
+ handle(request: StandardLazyRequest, options: StandardHandlerHandleOptions<T>): Promise<StandardHandlerHandleResult>;
68
+ }