@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.
- package/dist/adapters/aws-lambda/handler.d.ts +17 -15
- package/dist/adapters/aws-lambda/handler.js +23 -23
- package/dist/adapters/aws-lambda/index.d.ts +4 -16
- package/dist/adapters/aws-lambda/index.js +2 -2
- package/dist/adapters/aws-lambda/rpc-handler.d.ts +9 -9
- package/dist/adapters/aws-lambda/rpc-handler.js +20 -17
- package/dist/adapters/crossws/handler.d.ts +44 -42
- package/dist/adapters/crossws/handler.js +53 -60
- package/dist/adapters/crossws/index.d.ts +3 -2
- package/dist/adapters/crossws/index.js +2 -2
- package/dist/adapters/crossws/rpc-handler.d.ts +10 -10
- package/dist/adapters/crossws/rpc-handler.js +17 -14
- package/dist/adapters/fastify/handler.d.ts +17 -15
- package/dist/adapters/fastify/handler.js +20 -20
- package/dist/adapters/fastify/index.d.ts +3 -2
- package/dist/adapters/fastify/index.js +2 -2
- package/dist/adapters/fastify/rpc-handler.d.ts +9 -9
- package/dist/adapters/fastify/rpc-handler.js +16 -13
- package/dist/adapters/fetch/handler.d.ts +19 -17
- package/dist/adapters/fetch/handler.js +22 -22
- package/dist/adapters/fetch/index.d.ts +4 -7
- package/dist/adapters/fetch/index.js +3 -7
- package/dist/adapters/fetch/rpc-handler.d.ts +9 -9
- package/dist/adapters/fetch/rpc-handler.js +18 -15
- package/dist/adapters/message-port/handler.d.ts +58 -60
- package/dist/adapters/message-port/handler.js +72 -86
- package/dist/adapters/message-port/index.d.ts +3 -2
- package/dist/adapters/message-port/index.js +2 -2
- package/dist/adapters/message-port/rpc-handler.d.ts +9 -9
- package/dist/adapters/message-port/rpc-handler.js +17 -14
- package/dist/adapters/node/handler.d.ts +17 -15
- package/dist/adapters/node/handler.js +20 -20
- package/dist/adapters/node/index.d.ts +4 -7
- package/dist/adapters/node/index.js +3 -7
- package/dist/adapters/node/rpc-handler.d.ts +9 -9
- package/dist/adapters/node/rpc-handler.js +17 -14
- package/dist/adapters/standard/codec.d.ts +13 -13
- package/dist/adapters/standard/handler.d.ts +49 -49
- package/dist/adapters/standard/handler.js +205 -205
- package/dist/adapters/standard/index.d.ts +7 -6
- package/dist/adapters/standard/index.js +4 -5
- package/dist/adapters/standard/plugin.d.ts +25 -31
- package/dist/adapters/standard/plugin.js +14 -16
- package/dist/adapters/standard/rpc-handler-codec.d.ts +39 -43
- package/dist/adapters/standard/rpc-handler-codec.js +50 -51
- package/dist/adapters/standard/rpc-matcher.d.ts +40 -40
- package/dist/adapters/standard/rpc-matcher.js +103 -149
- package/dist/adapters/standard/utils.d.ts +8 -8
- package/dist/adapters/standard/utils.js +7 -5
- package/dist/adapters/standard-peer/index.d.ts +2 -1
- package/dist/adapters/standard-peer/index.js +1 -1
- package/dist/adapters/standard-peer/utils.d.ts +6 -4
- package/dist/adapters/standard-peer/utils.js +12 -6
- package/dist/adapters/websocket/handler.d.ts +52 -50
- package/dist/adapters/websocket/handler.js +75 -85
- package/dist/adapters/websocket/index.d.ts +3 -2
- package/dist/adapters/websocket/index.js +2 -2
- package/dist/adapters/websocket/rpc-handler.d.ts +9 -9
- package/dist/adapters/websocket/rpc-handler.js +17 -14
- package/dist/builder-variants.d.ts +195 -195
- package/dist/builder.d.ts +103 -104
- package/dist/builder.js +198 -224
- package/dist/constants.d.ts +1 -1
- package/dist/constants.js +4 -2
- package/dist/context.d.ts +3 -3
- package/dist/extensions/callable.d.ts +11 -11
- package/dist/extensions/callable.js +6 -5
- package/dist/helpers/base64url.d.ts +1 -1
- package/dist/helpers/base64url.js +44 -49
- package/dist/helpers/cookie.d.ts +10 -11
- package/dist/helpers/cookie.js +56 -63
- package/dist/helpers/encryption.d.ts +1 -1
- package/dist/helpers/encryption.js +80 -70
- package/dist/helpers/index.d.ts +5 -4
- package/dist/helpers/index.js +4 -4
- package/dist/helpers/signing.d.ts +1 -1
- package/dist/helpers/signing.js +72 -82
- package/dist/implementer-procedure.d.ts +12 -13
- package/dist/implementer-procedure.js +37 -44
- package/dist/implementer-router.d.ts +30 -36
- package/dist/implementer-router.js +92 -111
- package/dist/implementer.d.ts +8 -8
- package/dist/implementer.js +28 -35
- package/dist/index.d.ts +22 -61
- package/dist/index.js +16 -48
- package/dist/lazy.d.ts +14 -14
- package/dist/lazy.js +19 -30
- package/dist/middleware-decorated.d.ts +8 -9
- package/dist/middleware-decorated.js +66 -70
- package/dist/middleware.d.ts +34 -34
- package/dist/plugins/batch.d.ts +75 -75
- package/dist/plugins/batch.js +345 -379
- package/dist/plugins/cors.d.ts +60 -64
- package/dist/plugins/cors.js +118 -111
- package/dist/plugins/get-method-csrf-protection.d.ts +8 -6
- package/dist/plugins/get-method-csrf-protection.js +47 -63
- package/dist/plugins/head-method.d.ts +11 -9
- package/dist/plugins/head-method.js +97 -94
- package/dist/plugins/index.d.ts +15 -39
- package/dist/plugins/index.js +14 -29
- package/dist/plugins/method-override.d.ts +30 -28
- package/dist/plugins/method-override.js +53 -49
- package/dist/plugins/request-compression.d.ts +11 -9
- package/dist/plugins/request-compression.js +52 -79
- package/dist/plugins/request-headers.d.ts +10 -8
- package/dist/plugins/request-headers.js +27 -29
- package/dist/plugins/request-limit.d.ts +21 -19
- package/dist/plugins/request-limit.js +60 -67
- package/dist/plugins/response-compression.d.ts +42 -39
- package/dist/plugins/response-compression.js +150 -202
- package/dist/plugins/response-headers.d.ts +15 -13
- package/dist/plugins/response-headers.js +43 -46
- package/dist/plugins/rethrow.d.ts +25 -23
- package/dist/plugins/rethrow.js +46 -58
- package/dist/plugins/signal-sync.d.ts +7 -5
- package/dist/plugins/signal-sync.js +71 -86
- package/dist/plugins/timeout.d.ts +29 -27
- package/dist/plugins/timeout.js +61 -58
- package/dist/procedure-client.d.ts +14 -15
- package/dist/procedure-client.js +149 -166
- package/dist/procedure-decorated.d.ts +9 -9
- package/dist/procedure-decorated.js +36 -44
- package/dist/procedure-utils.d.ts +10 -30
- package/dist/procedure-utils.js +39 -40
- package/dist/procedure.d.ts +60 -60
- package/dist/procedure.js +18 -24
- package/dist/router-client.d.ts +9 -11
- package/dist/router-client.js +33 -41
- package/dist/router-hidden.js +10 -12
- package/dist/router-utils.d.ts +13 -30
- package/dist/router-utils.js +146 -191
- package/dist/router.d.ts +12 -26
- package/package.json +10 -10
- package/dist/adapters/standard/codec.js +0 -1
- package/dist/builder-variants.js +0 -1
- package/dist/context.js +0 -1
- package/dist/middleware.js +0 -1
- package/dist/router-hidden.d.ts +0 -5
- package/dist/router.js +0 -1
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
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
|
-
|
|
2
|
-
|
|
3
|
-
|
|
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
|
-
|
|
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
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
|
|
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
|
-
|
|
16
|
-
}
|
|
15
|
+
constructor(router: Router<T>, options?: NoInfer<RPCHandlerOptions<T>>);
|
|
16
|
+
}
|
|
@@ -1,15 +1,18 @@
|
|
|
1
|
-
import { RPCHandlerCodec
|
|
2
|
-
import {
|
|
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
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
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
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import
|
|
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
|
-
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
path: string[];
|
|
9
|
+
procedure: AnyProcedure;
|
|
10
|
+
decodeInput: () => Promise<unknown>;
|
|
11
11
|
}
|
|
12
12
|
export interface StandardHandlerCodec<T extends Context> {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
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
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
import
|
|
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
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
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>,
|
|
21
|
-
|
|
20
|
+
export interface ResolvedStandardHandlerHandleOptions<T extends Context> extends Omit<StandardHandlerHandleOptions<T>, "context"> {
|
|
21
|
+
context: T;
|
|
22
22
|
}
|
|
23
23
|
export type StandardHandlerHandleResult = {
|
|
24
|
-
|
|
25
|
-
|
|
24
|
+
matched: true;
|
|
25
|
+
response: StandardResponse;
|
|
26
26
|
} | {
|
|
27
|
-
|
|
28
|
-
|
|
27
|
+
matched: false;
|
|
28
|
+
response?: undefined;
|
|
29
29
|
};
|
|
30
30
|
export interface StandardHandlerInterceptorOptions<T extends Context> extends StandardHandlerCodecResolvedProcedure, ResolvedStandardHandlerHandleOptions<T> {
|
|
31
|
-
|
|
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
|
-
|
|
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
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
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
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
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
|
+
}
|