@orpc/server 0.0.0-next.3d10c98 → 0.0.0-next.3d8a81d
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 +5 -6
- 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.d.mts +35 -0
- package/dist/adapters/bun-ws/index.d.ts +35 -0
- package/dist/adapters/bun-ws/index.mjs +46 -0
- package/dist/adapters/crossws/index.d.mts +30 -0
- package/dist/adapters/crossws/index.d.ts +30 -0
- package/dist/adapters/crossws/index.mjs +46 -0
- package/dist/adapters/fetch/index.d.mts +17 -9
- package/dist/adapters/fetch/index.d.ts +17 -9
- package/dist/adapters/fetch/index.mjs +9 -4
- package/dist/adapters/message-port/index.d.mts +28 -0
- package/dist/adapters/message-port/index.d.ts +28 -0
- package/dist/adapters/message-port/index.mjs +41 -0
- package/dist/adapters/node/index.d.mts +17 -9
- package/dist/adapters/node/index.d.ts +17 -9
- package/dist/adapters/node/index.mjs +9 -4
- package/dist/adapters/standard/index.d.mts +4 -4
- package/dist/adapters/standard/index.d.ts +4 -4
- package/dist/adapters/standard/index.mjs +4 -5
- package/dist/adapters/websocket/index.d.mts +51 -0
- package/dist/adapters/websocket/index.d.ts +51 -0
- package/dist/adapters/websocket/index.mjs +69 -0
- package/dist/adapters/ws/index.d.mts +28 -0
- package/dist/adapters/ws/index.d.ts +28 -0
- package/dist/adapters/ws/index.mjs +39 -0
- package/dist/hibernation/index.d.mts +44 -0
- package/dist/hibernation/index.d.ts +44 -0
- package/dist/hibernation/index.mjs +65 -0
- package/dist/index.d.mts +19 -14
- package/dist/index.d.ts +19 -14
- package/dist/index.mjs +25 -8
- package/dist/plugins/index.d.mts +13 -13
- package/dist/plugins/index.d.ts +13 -13
- package/dist/plugins/index.mjs +19 -12
- package/dist/shared/{server.D5fBlF9j.d.ts → server.-ACo36I0.d.ts} +9 -9
- package/dist/shared/{server.CuD15qZB.d.ts → server.BPAWobQg.d.ts} +3 -9
- package/dist/shared/{server.CN0534_m.d.mts → server.Bd52nNaH.d.mts} +3 -9
- package/dist/shared/{server.DjgtLwKi.d.mts → server.BliFSTnG.d.mts} +2 -2
- package/dist/shared/{server.qf03T-Xn.mjs → server.CB8Snncu.mjs} +12 -16
- package/dist/shared/{server.DPWk5pjW.d.mts → server.DD2C4ujN.d.mts} +4 -4
- package/dist/shared/{server.DPWk5pjW.d.ts → server.DD2C4ujN.d.ts} +4 -4
- package/dist/shared/{server.DG7Tamti.mjs → server.DLJzqnSX.mjs} +3 -2
- package/dist/shared/{server.BVwwTHyO.mjs → server.DZ5BIITo.mjs} +1 -1
- package/dist/shared/{server.DY7OKEoj.d.mts → server.Dq8xr7PQ.d.mts} +9 -9
- package/dist/shared/{server.CjlA3NKP.d.ts → server.IG2MjhrD.d.ts} +2 -2
- package/package.json +61 -8
@@ -1,17 +1,11 @@
|
|
1
1
|
import { StandardRPCJsonSerializerOptions } from '@orpc/client/standard';
|
2
|
-
import { C as Context, R as Router } from './server.
|
3
|
-
import { b as StandardHandlerOptions, i as StandardHandler } from './server.
|
2
|
+
import { C as Context, R as Router } from './server.DD2C4ujN.mjs';
|
3
|
+
import { b as StandardHandlerOptions, i as StandardHandler } from './server.Dq8xr7PQ.mjs';
|
4
4
|
|
5
5
|
interface StandardRPCHandlerOptions<T extends Context> extends StandardHandlerOptions<T>, StandardRPCJsonSerializerOptions {
|
6
|
-
/**
|
7
|
-
* Enables or disables the StrictGetMethodPlugin.
|
8
|
-
*
|
9
|
-
* @default true
|
10
|
-
*/
|
11
|
-
strictGetMethodPluginEnabled?: boolean;
|
12
6
|
}
|
13
7
|
declare class StandardRPCHandler<T extends Context> extends StandardHandler<T> {
|
14
|
-
constructor(router: Router<any, T>, options
|
8
|
+
constructor(router: Router<any, T>, options?: StandardRPCHandlerOptions<T>);
|
15
9
|
}
|
16
10
|
|
17
11
|
export { StandardRPCHandler as a };
|
@@ -1,5 +1,5 @@
|
|
1
|
-
import { C as Context } from './server.
|
2
|
-
import { g as StandardHandleOptions } from './server.
|
1
|
+
import { C as Context } from './server.DD2C4ujN.mjs';
|
2
|
+
import { g as StandardHandleOptions } from './server.Dq8xr7PQ.mjs';
|
3
3
|
|
4
4
|
type FriendlyStandardHandleOptions<T extends Context> = Omit<StandardHandleOptions<T>, 'context'> & (Record<never, never> extends T ? {
|
5
5
|
context?: T;
|
@@ -1,18 +1,17 @@
|
|
1
1
|
import { toHttpPath, StandardRPCJsonSerializer, StandardRPCSerializer } from '@orpc/client/standard';
|
2
|
-
import { toArray, intercept, parseEmptyableJSON } from '@orpc/shared';
|
3
|
-
import '@orpc/standard-server/batch';
|
4
2
|
import { ORPCError, toORPCError } from '@orpc/client';
|
5
|
-
import {
|
6
|
-
import {
|
3
|
+
import { toArray, intercept, parseEmptyableJSON, NullProtoObj } from '@orpc/shared';
|
4
|
+
import { flattenHeader } from '@orpc/standard-server';
|
5
|
+
import { c as createProcedureClient, t as traverseContractProcedures, i as isProcedure, u as unlazy, g as getRouter, a as createContractedProcedure } from './server.DLJzqnSX.mjs';
|
7
6
|
|
8
7
|
class CompositeStandardHandlerPlugin {
|
9
8
|
plugins;
|
10
9
|
constructor(plugins = []) {
|
11
10
|
this.plugins = [...plugins].sort((a, b) => (a.order ?? 0) - (b.order ?? 0));
|
12
11
|
}
|
13
|
-
init(options) {
|
12
|
+
init(options, router) {
|
14
13
|
for (const plugin of this.plugins) {
|
15
|
-
plugin.init?.(options);
|
14
|
+
plugin.init?.(options, router);
|
16
15
|
}
|
17
16
|
}
|
18
17
|
}
|
@@ -22,7 +21,7 @@ class StandardHandler {
|
|
22
21
|
this.matcher = matcher;
|
23
22
|
this.codec = codec;
|
24
23
|
const plugins = new CompositeStandardHandlerPlugin(options.plugins);
|
25
|
-
plugins.init(options);
|
24
|
+
plugins.init(options, router);
|
26
25
|
this.interceptors = toArray(options.interceptors);
|
27
26
|
this.clientInterceptors = toArray(options.clientInterceptors);
|
28
27
|
this.rootInterceptors = toArray(options.rootInterceptors);
|
@@ -61,8 +60,10 @@ class StandardHandler {
|
|
61
60
|
isDecoding = true;
|
62
61
|
const input = await this.codec.decode(request2, match.params, match.procedure);
|
63
62
|
isDecoding = false;
|
64
|
-
const
|
65
|
-
|
63
|
+
const output = await client(input, {
|
64
|
+
signal: request2.signal,
|
65
|
+
lastEventId: flattenHeader(request2.headers["last-event-id"])
|
66
|
+
});
|
66
67
|
const response = this.codec.encode(output, match.procedure);
|
67
68
|
return {
|
68
69
|
matched: true,
|
@@ -111,7 +112,7 @@ class StandardRPCCodec {
|
|
111
112
|
}
|
112
113
|
|
113
114
|
class StandardRPCMatcher {
|
114
|
-
tree =
|
115
|
+
tree = new NullProtoObj();
|
115
116
|
pendingRouters = [];
|
116
117
|
init(router, path = []) {
|
117
118
|
const laziedOptions = traverseContractProcedures({ router, path }, ({ path: path2, contract }) => {
|
@@ -173,12 +174,7 @@ class StandardRPCMatcher {
|
|
173
174
|
}
|
174
175
|
|
175
176
|
class StandardRPCHandler extends StandardHandler {
|
176
|
-
constructor(router, options) {
|
177
|
-
options.plugins ??= [];
|
178
|
-
const strictGetMethodPluginEnabled = options.strictGetMethodPluginEnabled ?? true;
|
179
|
-
if (strictGetMethodPluginEnabled) {
|
180
|
-
options.plugins.push(new StrictGetMethodPlugin());
|
181
|
-
}
|
177
|
+
constructor(router, options = {}) {
|
182
178
|
const jsonSerializer = new StandardRPCJsonSerializer(options);
|
183
179
|
const serializer = new StandardRPCSerializer(jsonSerializer);
|
184
180
|
const matcher = new StandardRPCMatcher();
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import { ORPCErrorCode, ORPCErrorOptions, ORPCError, HTTPPath, ClientContext, Client } from '@orpc/client';
|
2
2
|
import { ErrorMap, ErrorMapItem, InferSchemaInput, AnySchema, Meta, ContractProcedureDef, InferSchemaOutput, ErrorFromErrorMap, AnyContractRouter, ContractProcedure } from '@orpc/contract';
|
3
|
-
import { MaybeOptionalOptions, Promisable, Interceptor, Value } from '@orpc/shared';
|
3
|
+
import { MaybeOptionalOptions, Promisable, Interceptor, PromiseWithError, Value } from '@orpc/shared';
|
4
4
|
|
5
5
|
type Context = Record<PropertyKey, any>;
|
6
6
|
type MergedInitialContext<TInitial extends Context, TAdditional extends Context, TCurrent extends Context> = TInitial & Omit<TAdditional, keyof TCurrent>;
|
@@ -127,11 +127,11 @@ type CreateProcedureClientOptions<TInitialContext extends Context, TOutputSchema
|
|
127
127
|
* This is helpful for logging and analytics.
|
128
128
|
*/
|
129
129
|
path?: readonly string[];
|
130
|
-
interceptors?: Interceptor<ProcedureClientInterceptorOptions<TInitialContext, TErrorMap, TMeta>, InferSchemaOutput<TOutputSchema>, ErrorFromErrorMap<TErrorMap
|
130
|
+
interceptors?: Interceptor<ProcedureClientInterceptorOptions<TInitialContext, TErrorMap, TMeta>, PromiseWithError<InferSchemaOutput<TOutputSchema>, ErrorFromErrorMap<TErrorMap>>>[];
|
131
131
|
} & (Record<never, never> extends TInitialContext ? {
|
132
|
-
context?: Value<TInitialContext
|
132
|
+
context?: Value<Promisable<TInitialContext>, [clientContext: TClientContext]>;
|
133
133
|
} : {
|
134
|
-
context: Value<TInitialContext
|
134
|
+
context: Value<Promisable<TInitialContext>, [clientContext: TClientContext]>;
|
135
135
|
});
|
136
136
|
/**
|
137
137
|
* Create Server-side client from a procedure.
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import { ORPCErrorCode, ORPCErrorOptions, ORPCError, HTTPPath, ClientContext, Client } from '@orpc/client';
|
2
2
|
import { ErrorMap, ErrorMapItem, InferSchemaInput, AnySchema, Meta, ContractProcedureDef, InferSchemaOutput, ErrorFromErrorMap, AnyContractRouter, ContractProcedure } from '@orpc/contract';
|
3
|
-
import { MaybeOptionalOptions, Promisable, Interceptor, Value } from '@orpc/shared';
|
3
|
+
import { MaybeOptionalOptions, Promisable, Interceptor, PromiseWithError, Value } from '@orpc/shared';
|
4
4
|
|
5
5
|
type Context = Record<PropertyKey, any>;
|
6
6
|
type MergedInitialContext<TInitial extends Context, TAdditional extends Context, TCurrent extends Context> = TInitial & Omit<TAdditional, keyof TCurrent>;
|
@@ -127,11 +127,11 @@ type CreateProcedureClientOptions<TInitialContext extends Context, TOutputSchema
|
|
127
127
|
* This is helpful for logging and analytics.
|
128
128
|
*/
|
129
129
|
path?: readonly string[];
|
130
|
-
interceptors?: Interceptor<ProcedureClientInterceptorOptions<TInitialContext, TErrorMap, TMeta>, InferSchemaOutput<TOutputSchema>, ErrorFromErrorMap<TErrorMap
|
130
|
+
interceptors?: Interceptor<ProcedureClientInterceptorOptions<TInitialContext, TErrorMap, TMeta>, PromiseWithError<InferSchemaOutput<TOutputSchema>, ErrorFromErrorMap<TErrorMap>>>[];
|
131
131
|
} & (Record<never, never> extends TInitialContext ? {
|
132
|
-
context?: Value<TInitialContext
|
132
|
+
context?: Value<Promisable<TInitialContext>, [clientContext: TClientContext]>;
|
133
133
|
} : {
|
134
|
-
context: Value<TInitialContext
|
134
|
+
context: Value<Promisable<TInitialContext>, [clientContext: TClientContext]>;
|
135
135
|
});
|
136
136
|
/**
|
137
137
|
* Create Server-side client from a procedure.
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import { isContractProcedure, ValidationError, mergePrefix, mergeErrorMap, enhanceRoute } from '@orpc/contract';
|
2
|
+
import { value, intercept, resolveMaybeOptionalOptions } from '@orpc/shared';
|
2
3
|
import { fallbackORPCErrorStatus, ORPCError } from '@orpc/client';
|
3
|
-
import { value, intercept } from '@orpc/shared';
|
4
4
|
|
5
5
|
const LAZY_SYMBOL = Symbol("ORPC_LAZY_SYMBOL");
|
6
6
|
function lazy(loader, meta = {}) {
|
@@ -361,7 +361,8 @@ function createContractedProcedure(procedure, contract) {
|
|
361
361
|
});
|
362
362
|
}
|
363
363
|
function call(procedure, input, ...rest) {
|
364
|
-
|
364
|
+
const options = resolveMaybeOptionalOptions(rest);
|
365
|
+
return createProcedureClient(procedure, options)(input, options);
|
365
366
|
}
|
366
367
|
|
367
368
|
export { LAZY_SYMBOL as L, Procedure as P, createContractedProcedure as a, addMiddleware as b, createProcedureClient as c, isLazy as d, enhanceRouter as e, createAssertedLazyProcedure as f, getRouter as g, createORPCErrorConstructorMap as h, isProcedure as i, getLazyMeta as j, middlewareOutputFn as k, lazy as l, mergeCurrentContext as m, isStartWithMiddlewares as n, mergeMiddlewares as o, call as p, getHiddenRouterContract as q, createAccessibleLazyRouter as r, setHiddenRouterContract as s, traverseContractProcedures as t, unlazy as u, validateORPCError as v, resolveContractProcedures as w, unlazyRouter as x };
|
@@ -1,17 +1,17 @@
|
|
1
1
|
import { HTTPPath, ORPCError } from '@orpc/client';
|
2
|
-
import { Meta
|
3
|
-
import { Interceptor
|
2
|
+
import { Meta } from '@orpc/contract';
|
3
|
+
import { Interceptor } from '@orpc/shared';
|
4
4
|
import { StandardResponse, StandardLazyRequest } from '@orpc/standard-server';
|
5
|
-
import { C as Context, f as AnyRouter, h as AnyProcedure, F as ProcedureClientInterceptorOptions
|
5
|
+
import { C as Context, R as Router, f as AnyRouter, h as AnyProcedure, F as ProcedureClientInterceptorOptions } from './server.DD2C4ujN.mjs';
|
6
6
|
|
7
|
-
interface StandardHandlerPlugin<
|
7
|
+
interface StandardHandlerPlugin<T extends Context> {
|
8
8
|
order?: number;
|
9
|
-
init?(options: StandardHandlerOptions<
|
9
|
+
init?(options: StandardHandlerOptions<T>, router: Router<any, T>): void;
|
10
10
|
}
|
11
11
|
declare class CompositeStandardHandlerPlugin<T extends Context, TPlugin extends StandardHandlerPlugin<T>> implements StandardHandlerPlugin<T> {
|
12
12
|
protected readonly plugins: TPlugin[];
|
13
13
|
constructor(plugins?: readonly TPlugin[]);
|
14
|
-
init(options: StandardHandlerOptions<T>): void;
|
14
|
+
init(options: StandardHandlerOptions<T>, router: Router<any, T>): void;
|
15
15
|
}
|
16
16
|
|
17
17
|
type StandardParams = Record<string, string>;
|
@@ -49,16 +49,16 @@ interface StandardHandlerOptions<TContext extends Context> {
|
|
49
49
|
/**
|
50
50
|
* Interceptors at the request level, helpful when you want catch errors
|
51
51
|
*/
|
52
|
-
interceptors?: Interceptor<StandardHandlerInterceptorOptions<TContext>, StandardHandleResult
|
52
|
+
interceptors?: Interceptor<StandardHandlerInterceptorOptions<TContext>, Promise<StandardHandleResult>>[];
|
53
53
|
/**
|
54
54
|
* Interceptors at the root level, helpful when you want override the request/response
|
55
55
|
*/
|
56
|
-
rootInterceptors?: Interceptor<StandardHandlerInterceptorOptions<TContext>, StandardHandleResult
|
56
|
+
rootInterceptors?: Interceptor<StandardHandlerInterceptorOptions<TContext>, Promise<StandardHandleResult>>[];
|
57
57
|
/**
|
58
58
|
*
|
59
59
|
* Interceptors for procedure client.
|
60
60
|
*/
|
61
|
-
clientInterceptors?: Interceptor<ProcedureClientInterceptorOptions<TContext, Record<never, never>, Meta>,
|
61
|
+
clientInterceptors?: Interceptor<ProcedureClientInterceptorOptions<TContext, Record<never, never>, Meta>, Promise<unknown>>[];
|
62
62
|
}
|
63
63
|
declare class StandardHandler<T extends Context> {
|
64
64
|
private readonly matcher;
|
@@ -1,5 +1,5 @@
|
|
1
|
-
import { C as Context } from './server.
|
2
|
-
import { g as StandardHandleOptions } from './server.
|
1
|
+
import { C as Context } from './server.DD2C4ujN.js';
|
2
|
+
import { g as StandardHandleOptions } from './server.-ACo36I0.js';
|
3
3
|
|
4
4
|
type FriendlyStandardHandleOptions<T extends Context> = Omit<StandardHandleOptions<T>, 'context'> & (Record<never, never> extends T ? {
|
5
5
|
context?: T;
|
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.
|
4
|
+
"version": "0.0.0-next.3d8a81d",
|
5
5
|
"license": "MIT",
|
6
6
|
"homepage": "https://orpc.unnoq.com",
|
7
7
|
"repository": {
|
@@ -24,6 +24,11 @@
|
|
24
24
|
"import": "./dist/plugins/index.mjs",
|
25
25
|
"default": "./dist/plugins/index.mjs"
|
26
26
|
},
|
27
|
+
"./hibernation": {
|
28
|
+
"types": "./dist/hibernation/index.d.mts",
|
29
|
+
"import": "./dist/hibernation/index.mjs",
|
30
|
+
"default": "./dist/hibernation/index.mjs"
|
31
|
+
},
|
27
32
|
"./standard": {
|
28
33
|
"types": "./dist/adapters/standard/index.d.mts",
|
29
34
|
"import": "./dist/adapters/standard/index.mjs",
|
@@ -38,21 +43,69 @@
|
|
38
43
|
"types": "./dist/adapters/node/index.d.mts",
|
39
44
|
"import": "./dist/adapters/node/index.mjs",
|
40
45
|
"default": "./dist/adapters/node/index.mjs"
|
46
|
+
},
|
47
|
+
"./aws-lambda": {
|
48
|
+
"types": "./dist/adapters/aws-lambda/index.d.mts",
|
49
|
+
"import": "./dist/adapters/aws-lambda/index.mjs",
|
50
|
+
"default": "./dist/adapters/aws-lambda/index.mjs"
|
51
|
+
},
|
52
|
+
"./websocket": {
|
53
|
+
"types": "./dist/adapters/websocket/index.d.mts",
|
54
|
+
"import": "./dist/adapters/websocket/index.mjs",
|
55
|
+
"default": "./dist/adapters/websocket/index.mjs"
|
56
|
+
},
|
57
|
+
"./crossws": {
|
58
|
+
"types": "./dist/adapters/crossws/index.d.mts",
|
59
|
+
"import": "./dist/adapters/crossws/index.mjs",
|
60
|
+
"default": "./dist/adapters/crossws/index.mjs"
|
61
|
+
},
|
62
|
+
"./ws": {
|
63
|
+
"types": "./dist/adapters/ws/index.d.mts",
|
64
|
+
"import": "./dist/adapters/ws/index.mjs",
|
65
|
+
"default": "./dist/adapters/ws/index.mjs"
|
66
|
+
},
|
67
|
+
"./bun-ws": {
|
68
|
+
"types": "./dist/adapters/bun-ws/index.d.mts",
|
69
|
+
"import": "./dist/adapters/bun-ws/index.mjs",
|
70
|
+
"default": "./dist/adapters/bun-ws/index.mjs"
|
71
|
+
},
|
72
|
+
"./message-port": {
|
73
|
+
"types": "./dist/adapters/message-port/index.d.mts",
|
74
|
+
"import": "./dist/adapters/message-port/index.mjs",
|
75
|
+
"default": "./dist/adapters/message-port/index.mjs"
|
41
76
|
}
|
42
77
|
},
|
43
78
|
"files": [
|
44
79
|
"dist"
|
45
80
|
],
|
81
|
+
"peerDependencies": {
|
82
|
+
"crossws": ">=0.3.4",
|
83
|
+
"ws": ">=8.18.1"
|
84
|
+
},
|
85
|
+
"peerDependenciesMeta": {
|
86
|
+
"crossws": {
|
87
|
+
"optional": true
|
88
|
+
},
|
89
|
+
"ws": {
|
90
|
+
"optional": true
|
91
|
+
}
|
92
|
+
},
|
46
93
|
"dependencies": {
|
47
|
-
"@orpc/client": "0.0.0-next.
|
48
|
-
"@orpc/
|
49
|
-
"@orpc/
|
50
|
-
"@orpc/standard-server-
|
51
|
-
"@orpc/
|
52
|
-
"@orpc/
|
94
|
+
"@orpc/client": "0.0.0-next.3d8a81d",
|
95
|
+
"@orpc/contract": "0.0.0-next.3d8a81d",
|
96
|
+
"@orpc/standard-server": "0.0.0-next.3d8a81d",
|
97
|
+
"@orpc/standard-server-aws-lambda": "0.0.0-next.3d8a81d",
|
98
|
+
"@orpc/standard-server-fetch": "0.0.0-next.3d8a81d",
|
99
|
+
"@orpc/shared": "0.0.0-next.3d8a81d",
|
100
|
+
"@orpc/standard-server-node": "0.0.0-next.3d8a81d",
|
101
|
+
"@orpc/standard-server-peer": "0.0.0-next.3d8a81d"
|
53
102
|
},
|
54
103
|
"devDependencies": {
|
55
|
-
"
|
104
|
+
"@types/ws": "^8.18.1",
|
105
|
+
"crossws": "^0.4.1",
|
106
|
+
"next": "^15.3.4",
|
107
|
+
"supertest": "^7.1.0",
|
108
|
+
"ws": "^8.18.1"
|
56
109
|
},
|
57
110
|
"scripts": {
|
58
111
|
"build": "unbuild",
|