@orpc/server 1.3.0 → 1.4.0
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/index.d.mts +45 -0
- package/dist/adapters/aws-lambda/index.d.ts +45 -0
- package/dist/adapters/aws-lambda/index.mjs +41 -0
- package/dist/adapters/bun-ws/index.mjs +1 -1
- package/dist/adapters/crossws/index.mjs +1 -1
- package/dist/adapters/fetch/index.mjs +1 -1
- package/dist/adapters/message-port/index.mjs +1 -1
- package/dist/adapters/node/index.mjs +1 -1
- package/dist/adapters/standard/index.mjs +1 -1
- package/dist/adapters/websocket/index.mjs +1 -1
- package/dist/adapters/ws/index.mjs +1 -1
- package/dist/plugins/index.d.mts +2 -2
- package/dist/plugins/index.d.ts +2 -2
- package/dist/plugins/index.mjs +5 -3
- package/dist/shared/{server.4FnxLwwr.mjs → server.CHvOkcM3.mjs} +2 -2
- package/package.json +15 -9
@@ -0,0 +1,45 @@
|
|
1
|
+
import { MaybeOptionalOptions } from '@orpc/shared';
|
2
|
+
import { SendStandardResponseOptions, APIGatewayProxyEventV2, ResponseStream } from '@orpc/standard-server-aws-lambda';
|
3
|
+
import { C as Context, R as Router } from '../../shared/server.DD2C4ujN.mjs';
|
4
|
+
import { i as StandardHandler } from '../../shared/server.Dq8xr7PQ.mjs';
|
5
|
+
import { F as FriendlyStandardHandleOptions } from '../../shared/server.BliFSTnG.mjs';
|
6
|
+
import { S as StandardRPCHandlerOptions } from '../../shared/server.Bd52nNaH.mjs';
|
7
|
+
import '@orpc/client';
|
8
|
+
import '@orpc/contract';
|
9
|
+
import '@orpc/standard-server';
|
10
|
+
import '@orpc/client/standard';
|
11
|
+
|
12
|
+
interface AwsLambdaHandlerOptions extends SendStandardResponseOptions {
|
13
|
+
}
|
14
|
+
type AwsLambdaHandleResult = {
|
15
|
+
matched: true;
|
16
|
+
} | {
|
17
|
+
matched: false;
|
18
|
+
};
|
19
|
+
declare class AwsLambdaHandler<T extends Context> {
|
20
|
+
private readonly standardHandler;
|
21
|
+
private readonly sendStandardResponseOptions;
|
22
|
+
constructor(standardHandler: StandardHandler<T>, options?: AwsLambdaHandlerOptions);
|
23
|
+
handle(event: APIGatewayProxyEventV2, responseStream: ResponseStream, ...rest: MaybeOptionalOptions<FriendlyStandardHandleOptions<T>>): Promise<AwsLambdaHandleResult>;
|
24
|
+
}
|
25
|
+
|
26
|
+
type RPCHandlerOptions<T extends Context> = AwsLambdaHandlerOptions & StandardRPCHandlerOptions<T> & {
|
27
|
+
/**
|
28
|
+
* Enables or disables the StrictGetMethodPlugin.
|
29
|
+
*
|
30
|
+
* @default true
|
31
|
+
*/
|
32
|
+
strictGetMethodPluginEnabled?: boolean;
|
33
|
+
};
|
34
|
+
/**
|
35
|
+
* RPC Handler for AWS Lambda.
|
36
|
+
*
|
37
|
+
* @see {@link https://orpc.unnoq.com/docs/rpc-handler RPC Handler Docs}
|
38
|
+
* @see {@link https://orpc.unnoq.com/docs/adapters/http HTTP Adapter Docs}
|
39
|
+
*/
|
40
|
+
declare class experimental_RPCHandler<T extends Context> extends AwsLambdaHandler<T> {
|
41
|
+
constructor(router: Router<any, T>, options?: NoInfer<RPCHandlerOptions<T>>);
|
42
|
+
}
|
43
|
+
|
44
|
+
export { AwsLambdaHandler, experimental_RPCHandler };
|
45
|
+
export type { AwsLambdaHandleResult, AwsLambdaHandlerOptions, RPCHandlerOptions };
|
@@ -0,0 +1,45 @@
|
|
1
|
+
import { MaybeOptionalOptions } from '@orpc/shared';
|
2
|
+
import { SendStandardResponseOptions, APIGatewayProxyEventV2, ResponseStream } from '@orpc/standard-server-aws-lambda';
|
3
|
+
import { C as Context, R as Router } from '../../shared/server.DD2C4ujN.js';
|
4
|
+
import { i as StandardHandler } from '../../shared/server.-ACo36I0.js';
|
5
|
+
import { F as FriendlyStandardHandleOptions } from '../../shared/server.IG2MjhrD.js';
|
6
|
+
import { S as StandardRPCHandlerOptions } from '../../shared/server.BPAWobQg.js';
|
7
|
+
import '@orpc/client';
|
8
|
+
import '@orpc/contract';
|
9
|
+
import '@orpc/standard-server';
|
10
|
+
import '@orpc/client/standard';
|
11
|
+
|
12
|
+
interface AwsLambdaHandlerOptions extends SendStandardResponseOptions {
|
13
|
+
}
|
14
|
+
type AwsLambdaHandleResult = {
|
15
|
+
matched: true;
|
16
|
+
} | {
|
17
|
+
matched: false;
|
18
|
+
};
|
19
|
+
declare class AwsLambdaHandler<T extends Context> {
|
20
|
+
private readonly standardHandler;
|
21
|
+
private readonly sendStandardResponseOptions;
|
22
|
+
constructor(standardHandler: StandardHandler<T>, options?: AwsLambdaHandlerOptions);
|
23
|
+
handle(event: APIGatewayProxyEventV2, responseStream: ResponseStream, ...rest: MaybeOptionalOptions<FriendlyStandardHandleOptions<T>>): Promise<AwsLambdaHandleResult>;
|
24
|
+
}
|
25
|
+
|
26
|
+
type RPCHandlerOptions<T extends Context> = AwsLambdaHandlerOptions & StandardRPCHandlerOptions<T> & {
|
27
|
+
/**
|
28
|
+
* Enables or disables the StrictGetMethodPlugin.
|
29
|
+
*
|
30
|
+
* @default true
|
31
|
+
*/
|
32
|
+
strictGetMethodPluginEnabled?: boolean;
|
33
|
+
};
|
34
|
+
/**
|
35
|
+
* RPC Handler for AWS Lambda.
|
36
|
+
*
|
37
|
+
* @see {@link https://orpc.unnoq.com/docs/rpc-handler RPC Handler Docs}
|
38
|
+
* @see {@link https://orpc.unnoq.com/docs/adapters/http HTTP Adapter Docs}
|
39
|
+
*/
|
40
|
+
declare class experimental_RPCHandler<T extends Context> extends AwsLambdaHandler<T> {
|
41
|
+
constructor(router: Router<any, T>, options?: NoInfer<RPCHandlerOptions<T>>);
|
42
|
+
}
|
43
|
+
|
44
|
+
export { AwsLambdaHandler, experimental_RPCHandler };
|
45
|
+
export type { AwsLambdaHandleResult, AwsLambdaHandlerOptions, RPCHandlerOptions };
|
@@ -0,0 +1,41 @@
|
|
1
|
+
import { resolveMaybeOptionalOptions } from '@orpc/shared';
|
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';
|
5
|
+
import '@orpc/standard-server/batch';
|
6
|
+
import '@orpc/client';
|
7
|
+
import { S as StrictGetMethodPlugin } from '../../shared/server.BW-nUGgA.mjs';
|
8
|
+
import '@orpc/contract';
|
9
|
+
import { b as StandardRPCHandler } from '../../shared/server.CHvOkcM3.mjs';
|
10
|
+
import '@orpc/client/standard';
|
11
|
+
import '../../shared/server.DG7Tamti.mjs';
|
12
|
+
|
13
|
+
class AwsLambdaHandler {
|
14
|
+
constructor(standardHandler, options = {}) {
|
15
|
+
this.standardHandler = standardHandler;
|
16
|
+
this.sendStandardResponseOptions = options;
|
17
|
+
}
|
18
|
+
sendStandardResponseOptions;
|
19
|
+
async handle(event, responseStream, ...rest) {
|
20
|
+
const standardRequest = toStandardLazyRequest(event, responseStream);
|
21
|
+
const options = resolveFriendlyStandardHandleOptions(resolveMaybeOptionalOptions(rest));
|
22
|
+
const result = await this.standardHandler.handle(standardRequest, options);
|
23
|
+
if (!result.matched) {
|
24
|
+
return { matched: false };
|
25
|
+
}
|
26
|
+
await sendStandardResponse(responseStream, result.response, this.sendStandardResponseOptions);
|
27
|
+
return { matched: true };
|
28
|
+
}
|
29
|
+
}
|
30
|
+
|
31
|
+
class experimental_RPCHandler extends AwsLambdaHandler {
|
32
|
+
constructor(router, options = {}) {
|
33
|
+
if (options.strictGetMethodPluginEnabled ?? true) {
|
34
|
+
options.plugins ??= [];
|
35
|
+
options.plugins.push(new StrictGetMethodPlugin());
|
36
|
+
}
|
37
|
+
super(new StandardRPCHandler(router, options), options);
|
38
|
+
}
|
39
|
+
}
|
40
|
+
|
41
|
+
export { AwsLambdaHandler, experimental_RPCHandler };
|
@@ -4,7 +4,7 @@ import { r as resolveFriendlyStandardHandleOptions } from '../../shared/server.B
|
|
4
4
|
import '@orpc/client';
|
5
5
|
import '@orpc/standard-server';
|
6
6
|
import '@orpc/contract';
|
7
|
-
import { b as StandardRPCHandler } from '../../shared/server.
|
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
|
|
@@ -4,7 +4,7 @@ import { r as resolveFriendlyStandardHandleOptions } from '../../shared/server.B
|
|
4
4
|
import '@orpc/client';
|
5
5
|
import '@orpc/standard-server';
|
6
6
|
import '@orpc/contract';
|
7
|
-
import { b as StandardRPCHandler } from '../../shared/server.
|
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
|
|
@@ -4,7 +4,7 @@ import { toStandardLazyRequest, toFetchResponse } from '@orpc/standard-server-fe
|
|
4
4
|
import { r as resolveFriendlyStandardHandleOptions } from '../../shared/server.BVwwTHyO.mjs';
|
5
5
|
import '@orpc/standard-server';
|
6
6
|
import '@orpc/contract';
|
7
|
-
import { C as CompositeStandardHandlerPlugin, b as StandardRPCHandler } from '../../shared/server.
|
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';
|
@@ -5,7 +5,7 @@ import { r as resolveFriendlyStandardHandleOptions } from '../../shared/server.B
|
|
5
5
|
import '@orpc/client';
|
6
6
|
import '@orpc/standard-server';
|
7
7
|
import '@orpc/contract';
|
8
|
-
import { b as StandardRPCHandler } from '../../shared/server.
|
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
|
|
@@ -4,7 +4,7 @@ import { toStandardLazyRequest, sendStandardResponse } from '@orpc/standard-serv
|
|
4
4
|
import { r as resolveFriendlyStandardHandleOptions } from '../../shared/server.BVwwTHyO.mjs';
|
5
5
|
import '@orpc/standard-server';
|
6
6
|
import '@orpc/contract';
|
7
|
-
import { C as CompositeStandardHandlerPlugin, b as StandardRPCHandler } from '../../shared/server.
|
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.
|
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';
|
@@ -4,7 +4,7 @@ import { r as resolveFriendlyStandardHandleOptions } from '../../shared/server.B
|
|
4
4
|
import '@orpc/client';
|
5
5
|
import '@orpc/standard-server';
|
6
6
|
import '@orpc/contract';
|
7
|
-
import { b as StandardRPCHandler } from '../../shared/server.
|
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
|
|
@@ -4,7 +4,7 @@ import { r as resolveFriendlyStandardHandleOptions } from '../../shared/server.B
|
|
4
4
|
import '@orpc/client';
|
5
5
|
import '@orpc/standard-server';
|
6
6
|
import '@orpc/contract';
|
7
|
-
import { b as StandardRPCHandler } from '../../shared/server.
|
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/plugins/index.d.mts
CHANGED
@@ -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
|
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-
|
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;
|
package/dist/plugins/index.d.ts
CHANGED
@@ -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
|
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-
|
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;
|
package/dist/plugins/index.mjs
CHANGED
@@ -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
|
-
|
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 }) => {
|
package/package.json
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"name": "@orpc/server",
|
3
3
|
"type": "module",
|
4
|
-
"version": "1.
|
4
|
+
"version": "1.4.0",
|
5
5
|
"license": "MIT",
|
6
6
|
"homepage": "https://orpc.unnoq.com",
|
7
7
|
"repository": {
|
@@ -39,6 +39,11 @@
|
|
39
39
|
"import": "./dist/adapters/node/index.mjs",
|
40
40
|
"default": "./dist/adapters/node/index.mjs"
|
41
41
|
},
|
42
|
+
"./aws-lambda": {
|
43
|
+
"types": "./dist/adapters/aws-lambda/index.d.mts",
|
44
|
+
"import": "./dist/adapters/aws-lambda/index.mjs",
|
45
|
+
"default": "./dist/adapters/aws-lambda/index.mjs"
|
46
|
+
},
|
42
47
|
"./websocket": {
|
43
48
|
"types": "./dist/adapters/websocket/index.d.mts",
|
44
49
|
"import": "./dist/adapters/websocket/index.mjs",
|
@@ -81,17 +86,18 @@
|
|
81
86
|
}
|
82
87
|
},
|
83
88
|
"dependencies": {
|
84
|
-
"@orpc/client": "1.
|
85
|
-
"@orpc/shared": "1.
|
86
|
-
"@orpc/contract": "1.
|
87
|
-
"@orpc/standard-server": "1.
|
88
|
-
"@orpc/standard-server-
|
89
|
-
"@orpc/standard-server-node": "1.
|
90
|
-
"@orpc/standard-server-
|
89
|
+
"@orpc/client": "1.4.0",
|
90
|
+
"@orpc/shared": "1.4.0",
|
91
|
+
"@orpc/contract": "1.4.0",
|
92
|
+
"@orpc/standard-server": "1.4.0",
|
93
|
+
"@orpc/standard-server-aws-lambda": "1.4.0",
|
94
|
+
"@orpc/standard-server-node": "1.4.0",
|
95
|
+
"@orpc/standard-server-fetch": "1.4.0",
|
96
|
+
"@orpc/standard-server-peer": "1.4.0"
|
91
97
|
},
|
92
98
|
"devDependencies": {
|
93
99
|
"@types/ws": "^8.18.1",
|
94
|
-
"crossws": "^0.
|
100
|
+
"crossws": "^0.4.1",
|
95
101
|
"next": "^15.3.0",
|
96
102
|
"supertest": "^7.1.0",
|
97
103
|
"ws": "^8.18.1"
|